2014-10-27 45 views
2

我正在製作基於會話的購物車系統,並且需要一些幫助來顯示會話中的數組。我的陣列看起來像這樣:以特定方式顯示數組元素

array(5) { [0]=> NULL [1]=> string(5) "TMRS1" [2]=> string(5) "TMRS2" [3]=> string(5) "TMRS1" [4]=> string(5) "TMRS3" } 

我想要一個腳本來計算重複的元素並顯示它們。

例如,TMRS1將被設置爲$name1(= TMRS1)和$quantity1(= 2)。接下來的項目將是$name2$quantity2等等。

這可能嗎?如果您對如何在購物車中展示商品有更好的瞭解,歡迎您發帖。我只需要能夠使用的物品的名稱拉從一個數據庫中的一些數據,然後添加了所有的價格項目的:)

+0

爲什麼TMRS1 1的數量?我看了兩遍 – FuzzyTree 2014-10-27 15:35:05

+0

@FuzzyTree對不起,我的錯。它現在被糾正:) – FrossBlock 2014-10-27 15:37:06

+0

TMRS是一個項目,旁邊的數字是數量? – Math 2014-10-27 16:11:07

回答

2

也許你可以使用從PHP array_count_values()

例子。淨

<?php 
$array = array(1, "hello", 1, "world", "hello"); 
print_r(array_count_values($array)); 
?> 

上例將輸出:

Array 
(
    [1] => 2 
    [hello] => 2 
    [world] => 1 
) 

與陣列你給:

$shopping_cart = array("TMRS1","TMRS2","TMRS1","TMRS3"); 
$items_count = array_count_values($shopping_cart); 

echo "Number of TMRS1 in the cart:".$item_count["TMRS1"]; 
+0

這不能回答我的問題。我需要腳本給每個項目一個$姓名(號碼)和$數量(號碼)。 – FrossBlock 2014-10-27 15:39:43

0

這將讓你與數據的數組,你需要:

<?php 

$tmrs = array(NULL, "TMRS1", "TMRS2", "TMRS1", "TMRS3"); 

foreach ($tmrs as $key => $val){ 
    $duplicateArray[$key]['name'] = "TMRS" . $key; // only the name 
    $duplicateArray[$key]['quantity'] = (int) str_replace("TMRS", "", $val); // aquire only the value 
} 

print_r($duplicateArray); 

?> 

,將返回:

Array 
(
[0] => Array 
    (
     [name] => TMRS0 
     [quantity] => 0 
    ) 

[1] => Array 
    (
     [name] => TMRS1 
     [quantity] => 1 
    ) 

[2] => Array 
    (
     [name] => TMRS2 
     [quantity] => 2 
    ) 

[3] => Array 
    (
     [name] => TMRS3 
     [quantity] => 1 
    ) 

[4] => Array 
    (
     [name] => TMRS4 
     [quantity] => 3 
    ) 

) 

然後你可以輸出的名稱或類似這樣的值:

<?php echo $duplicateArray[2]['name']; ?> 
+0

不幸的是,該項目並不總是被稱爲TMRS(號碼),所以我不能使用這個 - 但謝謝你的評論:) – FrossBlock 2014-10-27 16:04:41