2016-12-23 9 views
0

我有以下元件車會話:PHP返回總有相同的元件在二維陣列會話

的print_r($ _ SESSION [ '購物']);

Array 
(
    [0] => Array 
     (
      [p_name] => X-Dot Motorbike Helmet G88 + Bogo Visor (Test) 
      [p_code] => 2102649 
      [p_id] => 12332 
      [p_price] => 1.60 
      [p_seller] => 230002 
      [p_alt-variation-1] => Red 
      [p_alt-variation-2] => L - 1.60-36 
      [p_qty] => 1 
     ) 

    [1] => Array 
     (
      [p_name] => Salt and Lemon Candy (20 Packs/Carton) 
      [p_code] => 3443268 
      [p_id] => 11654 
      [p_price] => 1.20 
      [p_seller] => 230002 
      [p_qty] => 1 
     ) 

    [2] => Array 
     (
      [p_name] => Romoss Rolink Hybrid Premium Cable 
      [p_code] => TEST421 
      [p_id] => 10670 
      [p_price] => 13.90 
      [p_seller] => 230001 
      [p_qty] => 1 
     ) 

) 

可以看出在[p_seller],我想組相同p_seller值,並返回號碼:

return 2 through the array (230002), and return 1 through the array (230001)

我該怎麼辦呢?

+0

p_seller具有'** 230001 **'值,或者您試圖將這些數字加粗? –

+0

只有粗體,刪除 –

+0

*號碼*不是*總共具有相同的元素* – RomanPerekhrest

回答

1

也許你一定要試試這個代碼

<?php 

$array = array(
    array(
     'p_name' => "X-Dot Motorbike Helmet G88 + Bogo Visor (Test)", 
     'p_seller' => '230002', 
     'last_name' => 'Doe', 
    ), 
    array(
     'p_name' => "X-Dot Motorbike Helmet G88 + Bogo Visor (Test)", 
     'p_seller' => '230002', 
     'last_name' => 'Doe', 
    ), 
    array(
     'p_name' => "X-Dot Motorbike Helmet G88 + Bogo Visor (Test)", 
     'p_seller' => '230001', 
     'last_name' => 'Doe', 
    ) 
); 

$result = array_count_values(array_column($array, 'p_seller')); 
    arsort($result);// not neccesary 
    echo "<pre>";print_r($result);exit; 
?> 

輸出

Array 
(
    [230002] => 2 
    [230001] => 1 
) 
+0

感謝您接受我的回答 –

0

如果您知道數組indexes將始終相同,那麼您可以簡單地求和這些值。

嘗試

echo $_SESSION['cart'][1]['p_seller'] + $_SESSION['cart'][2]['p_seller']; 

對於動態

您可以使用array_sumforeach

嘗試

foreach ($_SESSION['cart'] as $val) 
{ 
    if(isset($val['p_seller'])) 
     $total[] = $val['p_seller']; 
} 
if(isset($total) && is_array($total)) 
{ 
    $total = array_sum($total); 
    echo $total; 
} 

更新1

據我所知你只是想echo在索引p_seller找到的值。

嘗試

$i = 0; 
foreach ($_SESSION['cart'] as $val) 
{ 
    if(isset($val['p_seller'])) 
    { 
     echo ++$i.' - '.$val['p_seller']."<br >"; 
    } 
} 
+0

對不起,也許我的問題不夠清楚,我想返回找到的具有相同** ID **的號碼,而不是總結ID 。從上面的例子中,我期望** 2 **和** 1 **作爲結果。 –

+0

我嘗試更新答案,遇到'$ ++ i',錯誤'解析錯誤:語法錯誤,意外的'++'(T_INC),期望變量(T_VARIABLE)或'$'在C:\ xampp中。 –

0
foreach ($_SESSION['cart'] as $Arrvalues){ 
    $total+= $Arrvalues['p_seller']; 
} 
echo $total; 

輸出:690005