PHP 数组 foreach 循环跳过单个键值


php array foreach loop skipping a single key value

>我正在尝试让foreach循环显示数组的所有值,但由于某种原因它跳过了值4。

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 - 这就是我所期望的。

这是你想要的:

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)实际上创建了一个可以循环访问的数组,但将重复项省略为单个值。 请参阅文档。