也许我在这里遗漏了一些东西,但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);
来使密钥正确,但似乎这不应该是必要的,所以我想知道是否有人比我更了解?
答案 0 :(得分: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
)
答案 1 :(得分:1)
我试过
<?php
$arr1 = array(15, 16, 17,18);
$arr2 = array(15, 17);
$arr3 = array_diff($arr1, $arr2);
var_dump($arr3);
&GT;
我得到[1] =&gt; 16,[3] =&gt; 18。
这实际上似乎是预期的结果,如the offical page上的示例所示。