Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当数组相似时如何返回该数组_Php_Arrays - Fatal编程技术网

Php 当数组相似时如何返回该数组

Php 当数组相似时如何返回该数组,php,arrays,Php,Arrays,我有两个像这样的数组 array1 = [ array("A"=> array("0"=>"1", "1"=>"2", "2"=>"3"), "B"=>"1"), array("A"=> array("0"=>"1",

我有两个像这样的数组

array1 = [  array("A"=> array("0"=>"1",
                              "1"=>"2",
                              "2"=>"3"),
                  "B"=>"1"),
            array("A"=> array("0"=>"1",
                              "1"=>"2"),
                   "B"=>"2")
                    ];

$array2 = array("A"=> array("0"=>"1",
                            "1"=>"2"),
                "B"=>"2",
                "C"=>"POP",
                "D"=>null);
现在我尝试比较$array1和$array2。 您将在A和B中看到$array2与$array1相同

这是我的结果,我希望是这样

$result = array("A"=> array("0"=>"1",
                            "1"=>"2"),
                "B"=>"2");
最后我用了phplaravel

我试着用

array_intersect_assoc($array1, $array2);

但是它什么都没有

为什么不定义自己的数组\u intersect\u assoc如下:

现在,您可以将其用于:

$array1 = [array("A"=> array("0"=>"1", "1"=>"2", "2"=>"3"), "B"=>"1"), array("A"=> array("0"=>"1", "1"=>"2"), "B"=>"2")];
$array2 = array("A"=> array("0"=>"1", "1"=>"2"), "B"=>"2", "C"=>"POP", "D"=>null);

$res= [];              
foreach($array1 as $arr) { // for each sub-array get all the familiar fields
    $res = array_merge(array_intersect_assoc_with_arrays($arr, $array2), $res);
}
将生成以下输出:

Array
(
    [A] => Array
        (
            [0] => 1
            [1] => 2
        )
    [B] => 2
)

希望有帮助

这些阵列在任何方面都不相似。与$array2相比,$array1中还有一个额外的嵌套级别。如果我想将$array1与$array2进行比较,是否可能?或者我必须使$array1仅为1d数组?$array1[0]与$array2密切相关$array1[0]与$array2密切相关不是worked@JustCarty你是说$array1[1]这很有帮助,但我不理解你的代码。你能解释更多吗?问题是数组_intersect _assoc只对字符串数组有效,不允许使用子数组-我对它做了一点修改,以支持子数组。在帖子中为我的代码添加注释。如果您还有一些不清楚的行,请发表评论
Array
(
    [A] => Array
        (
            [0] => 1
            [1] => 2
        )
    [B] => 2
)