Php 当两个数组都是多维数组时,检查数组A是否包含数组B中的所有项
我想检查一下,如果数组A包含来自数组B的所有项,那么当两个数组都是多维数组时,可能包含其他项,但必须包含所有项,即可以包含不同的变量类型 我看到了很多,尤其是,还有,还有。我读过PHP文档。我检查过的所有内容都失败了,需要注意数组到字符串的转换。尤其是使用或 我使用的是严格的错误检查,所以通知实际上保留了整个脚本的进一步执行,这是我通常不喜欢也不想避免的事情。在这种情况下可能吗 我的数组是:Php 当两个数组都是多维数组时,检查数组A是否包含数组B中的所有项,php,arrays,associative-array,jagged-arrays,array-intersect,Php,Arrays,Associative Array,Jagged Arrays,Array Intersect,我想检查一下,如果数组A包含来自数组B的所有项,那么当两个数组都是多维数组时,可能包含其他项,但必须包含所有项,即可以包含不同的变量类型 我看到了很多,尤其是,还有,还有。我读过PHP文档。我检查过的所有内容都失败了,需要注意数组到字符串的转换。尤其是使用或 我使用的是严格的错误检查,所以通知实际上保留了整个脚本的进一步执行,这是我通常不喜欢也不想避免的事情。在这种情况下可能吗 我的数组是: Array ( [0] => content/manage/index [Cont
Array
(
[0] => content/manage/index
[Content] => Array
(
[title] =>
[type] => 5
[category] =>
[recommended] =>
[featured] =>
[status] =>
[views] =>
[last_access_date] =>
[creation_date] =>
[modification_date] =>
[availability_date] =>
[author_id] =>
)
)
我的数组B是:
Array
(
[0] => /content/manage/index
[Content] => Array
(
[type] => 1
)
)
那么,如果我可以在包含不同变量类型的多维数组上使用array\u intersect而不被通知,我有什么办法可以做到呢?我的问题和疑问来自误解,数组到字符串的转换通知的真正含义是什么。在我的例子中,它试图告诉我,我正在尝试使用设计用于一维数组的函数遍历多维数组 理解这一点让我在几秒钟内找到了解决方案。这里有很多这样的人,但是deceze给我的那个看起来最适合我。因此,我将其采纳为此类功能的形式:
function recursiveArrayIntersect($array1, $array2)
{
$array1 = array_intersect_key($array1, $array2);
foreach($array1 as $key=>&$value)
{
if(is_array($value)) $value = recursiveArrayIntersect($value, $array2[$key]);
}
return $array1;
}
我在我的项目和我的编码方式中采用了它,但所有的学分仍然归deceze所有
现在我可以找到几乎任何数组的交集,不管它包含什么类型的变量,也不管它有多深,它包含多少子数组