我正在尝试通过以下操作找到这两个数组之间的差异:
$linkedAritclesToBeRemoved = array_diff($oldLinkedArticleIds, $linkedArticlesIds);
$linkedArticlesToBeAdded = array_diff($linkedArticlesIds, $oldLinkedArticleIds);
上面的代码引发警告。注意:数组到字符串的转换,这是因为我的一个数组是单个数组,另一个数组是多维数组。因此,我想删除此警告消息,并且希望数组与array_diff函数兼容!我该怎么做?
注意:我知道这是一个通知,但是我想删除它。
新数组(linkedArticlesIds):
array(5) {
[0]=>
string(1) "6"
[1]=>
string(1) "2"
[2]=>
string(1) "1"
[3]=>
string(1) "7"
[4]=>
string(1) "8"
}
旧数组($ oldLinkedArticleIds):
array(3) {
[0]=>
array(6) {
["id"]=>
int(30)
["article_id"]=>
int(1)
["linked_article_id"]=>
int(6)
["order_by"]=>
NULL
["created_at"]=>
string(19) "2019-01-03 00:00:00"
["updated_at"]=>
string(19) "2019-01-03 00:00:00"
}
[1]=>
array(6) {
["id"]=>
int(31)
["article_id"]=>
int(1)
["linked_article_id"]=>
int(2)
["order_by"]=>
NULL
["created_at"]=>
string(19) "2019-01-03 00:00:00"
["updated_at"]=>
string(19) "2019-01-03 00:00:00"
}
[2]=>
array(6) {
["id"]=>
int(32)
["article_id"]=>
int(1)
["linked_article_id"]=>
int(1)
["order_by"]=>
NULL
["created_at"]=>
string(19) "2019-01-03 00:00:00"
["updated_at"]=>
string(19) "2019-01-03 00:00:00"
}
}
答案 0 :(得分:1)
如果您只需要比较$oldLinkedArticleIds
数组中的商品ID,则需要提取ID列。您可以使用array_column()
...
$oldIds = array_column($oldLinkedArticleIds, "id");
并在比较中使用此新列表...
$linkedAritclesToBeRemoved = array_diff($oldIds, $linkedArticlesIds);
$linkedArticlesToBeAdded = array_diff($linkedArticlesIds, $oldIds);