1

配列のすべての値を表示するために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に等しいです-これは私が期待していることです。

4

1 に答える 1

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)実際には、ループできる配列を作成しますが、重複は1つの値に省略されます。ドキュメントを参照してください。

于 2012-05-15T18:07:13.623 に答える