2011-06-16 201 views
0
$cart = $_SESSION['cart']; 
    if ($cart) { 
     $items = explode(',',$cart); 

      //what should i do next?? the value of $items is 4,4,2,2,2,4 
+0

您應該首先在會話中存儲*數組*,而不是字符串。使事情變得更簡單。 – deceze 2011-06-16 07:35:00

回答

2

爲了得到陣列無需重複使用array_unique()

   $cart = $_SESSION['cart']; 
        if ($cart) { 
         $items = explode(',',$cart); 
       $unique_items=array_unique($items); // gives 4,2 


    $result_array=array(); 

     foreach($unique_items as $uni_item) 
     { 
      $item_occurence_count=0; 
      $totalvalue=0; 

     foreach($items as $item) 
      { 
      $item_value=$item; 
      $totalvalue+=$item_value; 
      if($item==$uni_item) 
       { 
        ++$item_occurence_count; 
        $result_array[$uni_item]=$item_occurence_count; 
       } 
      } 
     } 
print_r($result_array); // gives Array ([4] => 3 [2] => 3) 

希望這是需要什麼。

+0

tnx男人!你的男人。 =)保持良好=) – yohdaman 2011-06-16 08:14:07

1

我認爲你正在尋找array_count_values來計算數組中的值。

+0

它會給我相同的值的總數?如4的值等於3,2等於3? TNX。也許必須讀取array_count_values。 – yohdaman 2011-06-16 07:36:51

+0

@yohdaman:查看文檔中的示例。 – 2011-06-16 08:07:15

+0

@yohdaman - 這正是array_count_values所做的。 – borrible 2011-06-16 08:23:20