2012-05-15 104 views
1

我想获得一个foreach循环来显示一个数组中所有的值,但由于某种原因,它会跳过值4PHP数组foreach循环跳过

echo $sku."<br>"; 
$skuArray = explode(" ", $sku); 
$skuCount = array_count_values($skuArray); 
print_r($skuArray); 
echo "<br><br>"; 
$i=0; 
foreach ($skuCount as $key => $val) { 
    echo "[".$i."] => ".$key." "; 
    $i++; 
} 

,这就是输出一个键值看起来像:

1DALI0SPBA775RW 2 $92.99 1GJESSGRIP10000 2 $9.99 

Array ([0] => 1DALI0SPBA775RW 
     [1] => 2 
     [2] => $92.99 
     [3] => 1GJESSGRIP10000 
     [4] => 2 
     [5] => $9.99) 

[0] => 1DALI0SPBA775RW 
[1] => 2 
[2] => $92.99 
[3] => 1GJESSGRIP10000 
[4] => $9.99 

正如你所看到的,foreach循环说,4等于$ 9.99加入,但print_r的阵列中它等于2 - 这是我希望它是。

+4

'array_count_values'总和一个特定元素出现在数组中的次数。 –

+1

问题是你的foreach正在看skuCount,为什么不对你的foreach数组做foreach? – DaOgre

回答

3

这是你想要什么:

echo $sku."<br>"; 
$skuArray = explode(" ", $sku); 
print_r($skuArray); 
echo "<br><br>"; 
$i=0; 
foreach ($skuArray as $key => $val) { 
    echo "[".$key."] => ".$val." "; 
} 

array_count_values($skuArray)实际创建一个数组,你可以通过循环,但省略掉,以单个值重复。请参阅documentation