0

ここで何かが足りないかもしれarray_diff()ませんが、配列の最後に空のkesysが残っているようです。

このサンプルデータでは-

$term_ids = array(0 => 242, 1 => 270);
$term_ids = array_diff($term_ids, array(242, 243, 266, 267, 268, 269));

私はこれを残されています-

Array
(
    [1] => 270
    [0] => 
)

私の理解では、これは正しくありません([0]は設定を解除し、[1]だけを残す必要があります)。私は$term_ids = array_values($term_ids);キーを正しくするためにアフターを使用していますが、これは必要ではないようですので、私よりも多くのことを知っている誰かが明確にすることができるかどうか疑問に思います。

4

2 に答える 2

2

再現できません:

$term_ids = array(0 => 242, 1 => 270);
$term_ids = array_diff($term_ids, array(242, 243, 266, 267, 268, 269));
print_r($term_ids);

出力:

Array
(
    [1] => 270
)
于 2012-04-11T14:15:44.100 に答える
1

私は試した

<?php

$arr1 = array(15, 16, 17,18);
$arr2 = array(15, 17);

$arr3 = array_diff($arr1, $arr2);

var_dump($arr3);

?>

そして私は[1]=>16、[3]=>18を得ました。

公式ページの例が示すように、これは実際には意図した結果のようです。

于 2012-04-11T14:22:55.153 に答える