2016-02-05 97 views
0

我是编程的新手,所以我很抱歉,如果这是非常不好意思的。PHP:如何处理来自数据库的这个数据

在一个虚拟数据库中,我有一个名为currency的列。该列包含以下数据:

36:USD,74:GBP,68:USD,119:USD,114:BGN,15:USD,32:GBP,1:BGN 

以上数据是用户支付的金额及其各自的货币。

我想要做的是显示一个表,每种货币和该国家的销售总额,并以表格形式显示。

因此,与上述数据,我想下面的输出:

Currency | # Sales 
____________________ 

USD   4 
GPB   2 
BGN   2 
____________________ 

    Total: 8 
+0

发布您的代码? –

+0

你试过用[爆炸](http://php.net/manual/en/function.explode.php)吗? – Naruto

+0

@ChetanAmeta我没有发布代码,因为它是一个完整的混乱,所以我决定删除它,并要求SO – JamesG

回答

1

试试这个

$data = "36:USD,74:GBP,68:USD,119:USD,114:BGN,15:USD,32:GBP,1:BGN"; 
$data = explode(",", $data); 

$result = array(); 
foreach ($data as $value) { 
    $d_array = explode(":", $value); 
    if(isset($result[$d_array[1]])) 
     $result[$d_array[1]] +=1; 
    else 
     $result[$d_array[1]] = 1; 
} 
$total = count($data); 

var_dump($result); 
var_dump($total); 

而结果

array (size=3) 
'USD' => int 4 
'GBP' => int 2 
'BGN' => int 2 

int 8 
0

看看我的例子。我希望它适合你。

$orders = array("36:USD","74:GBP","68:USD","119:USD","114:BGN","15:USD","32:GBP","1:BGN"); 

$totalData = array(); 
foreach($orders as $singleOrder) { 
    $explodedData = explode(':',$singleOrder); 

    if(!isset($totalData[$explodedData[1]])) { 
     $totalData[$explodedData[1]] = $explodedData[0]; 
    } else { 
     $totalData[$explodedData[1]] += $explodedData[0]; 
    } 
} 

var_dump($totalData); 

结果

array (size=3) 
    'USD' => int 238 
    'GBP' => int 106 
    'BGN' => int 115 
1
$data = "36:USD,74:GBP,68:USD,119:USD,114:BGN,15:USD,32:GBP,1:BGN"; 
$data = explode(",", $data); 
$final_array = array(); 
foreach ($data as $value) 
{ 
    $new_array = explode(":", $value); 
    array_push($final_array, $new_array[1]); 
} 
$final_array = array_count_values($final_array); 
print_r($final_array); 

结果

Array([USD] => 4 [GBP] => 2 [BGN] => 2)