具有多維數組的array_diff()使用array_diff(),我可以比較和刪除相似的項目,但是如果我有以下數組怎么辦?數組1Array(
[0] => Array
(
[ITEM] => 1
)
[1] => Array
(
[ITEM] => 2
)
[2] => Array
(
[ITEM] => 3
))ARRAY2Array(
[0] => Array
(
[ITEM] => 2
)
[1] => Array
(
[ITEM] => 3
)
[2] => Array
(
[ITEM] => 1
)
[3] => Array
(
[ITEM] => 4
))我想過濾掉類似的物品;結果應該返回4.如何重新排列數組以便可以使用array_diff()?
3 回答

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
您可以使用定義自定義比較功能array_udiff()
。
function udiffCompare($a, $b){ return $a['ITEM'] - $b['ITEM'];}$arrdiff = array_udiff($arr2, $arr1, 'udiffCompare');print_r($arrdiff);
輸出:
Array ( [3] => Array ( [ITEM] => 4 ) )
這使用并保留了數組的現有結構,我認為這是您想要的。

繁華開滿天機
TA貢獻1816條經驗 獲得超4個贊
另一個有趣的json_encode
技巧(如果您需要“原始”比較第一級數組中的一些復雜值,可能會很有用):
// Compare all values by a json_encode$diff = array_diff(array_map('json_encode', $array1), array_map('json_encode', $array2));// Json decode the result$diff = array_map('json_decode', $diff);
添加回答
舉報
0/150
提交
取消