2016-02-05 114 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)