我期待在PHP中比较两个数组。
例如,我有数组A:
Array
(
[0] => Array
(
[option_id] => 19
[sub_option_id] => 57
)
[1] => Array
(
[option_id] => 1093
[sub_option_id] => 3582
)
[2] => Array
(
[option_id] => 1093
[sub_option_id] => 57
)
)
还有数组B:
Array
(
[0] => Array
(
[order_option_detail] => Array
(
[0] => Array
(
[option_id] => 19
[sub_option_id] => 57
)
[1] => Array
(
[option_id] => 1093
[sub_option_id] => 57
)
[2] => Array
(
[option_id] => 1093
[sub_option_id] => 3582
)
)
)
[1] => Array
(
[order_option_detail] => Array
(
[0] => Array
(
[option_id] => 1
[sub_option_id] => 2
)
)
)
)
通过查看数据结构,我可以看到数组B包含数组A。如何使用PHP进行相同的分析,即如何检查数组B包含数组A?
如果您知道,请帮助我! 非常感谢!
答案 0 :(得分:0)
在arrayB中,您只需要'order_option_detail'。
因此,如果我们使用array_column,我们可以将其隔离。
$details = array_column($arrayB, 'order_option_detail');
foreach($details as $detail){ // loop the two items.
if($detail === $arrayA){
// Do something
}
}
答案 1 :(得分:0)
您可以使用以下函数进行数组比较:
function array_equal($a, $b) {
if (!is_array($a) || !is_array($b) || count($a) != count($b))
return false;
$a = array_map("json_encode", $a);
$b = array_map("json_encode", $b);
return array_diff($a, $b) === array_diff($b, $a); // mean both the same values
}
然后将其用作:
$details = array_column($arrayB, 'order_option_detail');
foreach($details as $detail){ // loop the two items.
if (array_equal($detail, $arrayA)) {
// Do what ever
}
}