我有两个数组:
$currentArr = ['apples','oranges','pears'];
$newArr = ['apples','oranges','pears', 'grapes'];
我需要制定将要执行的逻辑:
a)将$newArr
与$currentArr
对照,并告诉我已删除的内容和已添加的内容
b)将删除的值压入一个新的单独的数组,并将添加的值压入一个新的单独的数组
由于我不太精通PHP,这可能吗?如果是这样,我该怎么办?
答案 0 :(得分:1)
array_diff()是您所需要的:
返回一个数组,其中包含来自array1的所有其他数组中不存在的条目。
<?php
$currentArr = ['apples','oranges','pears','test'];
$newArr = ['apples','oranges','pears', 'grapes'];
$removed = array_diff($currentArr, $newArr);
print_r($removed);
// output:
// Array ( [3] => test )
// switch the order to get the added items:
$added = array_diff($newArr, $currentArr);
print_r($added);
// output:
// Array ( [3] => grapes )
答案 1 :(得分:0)
arr_diff($ a,$ b)是一个函数,该函数返回一个新数组,其中包含$ a中不在$ b中的项目。
$removed = array_diff($currentAr,$newArr);
$added = array_diff($newArr,$currentAr);