Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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_Compare - Fatal编程技术网

Php 函数来真正比较数组

Php 函数来真正比较数组,php,compare,Php,Compare,我有一个比较通过我的函数推送的两个数组的函数。问题是,我可以根据计数比较两个不同数组的值。我的代码如下: function Array_Smoke($Array_1, $Array_2) { $Return_Array = array(); $Array_Count = count($Array_1); foreach (

我有一个比较通过我的函数推送的两个数组的函数。问题是,我可以根据计数比较两个不同数组的值。我的代码如下:

       function Array_Smoke($Array_1, $Array_2)
            {
                    $Return_Array = array();
                    $Array_Count = count($Array_1);             
                foreach ($Array_1 AS $SmokedKeys => $SmokedValues)
                {
                    if (in_array($SmokedValues, $Array_2))
                    {
                        $Return_Array[] = $SmokedValues;
                    }

            }
                if ($Array_Count == count($Return_Array))
                {
                    return "Arrays Match Up"; 
                }
                else
                {
                    return "Arrays Do Not Match Up";
                }
        }



   $Array_1 = array(
        "Primary Key Number 1" => "Primary Value Number 2", 
        "Sub Key Number 1" => "Sub Value Number 1",
        "Sub key Number 3" => "Sub Value Number 3", 
        "Sub Key Number 2" => "Sub Value Number 2",
   );
   $Array_2 = array(
        "Primary Key Number 1" => "Primary Value Number 2", 
        "Sub Key Number 1" => "Sub Value Number 1",
        "Sub key Number 2" => "Sub Value Number 2", 
        "Sub Key Number 3" => "Sub Value Number 3",
   );
        echo Array_Smoke($Array_1, $Array_2);

我将如何修改我的函数以基于数组的键和值进行比较

您是否尝试过
数组_diff_assoc()


好的,您可以像这样使用内置php操作符:

function Array_Smoke ($array1, $array2) {
    return $array1 == $array2;
}

关于“==”运算符,如果两个数组具有相同的键/值对,则返回true。

听起来像是array_diff_assoc()是您需要的。如果未返回任何内容,则数组匹配。请记住,键和值必须匹配

这将返回两个数组中存在的值,而不是在数组不匹配时失效。您是否只关心效率?因为您的函数可以在内部使用
array\u diff\u assoc
,然后检查空数组。为什么不直接使用==
if($Array_1==$$Array_2){/}
因为使用等于运算符进行实验,只有当两个数组的顺序相同时,它才会返回一个成功。您可以使用
Array_diff_assoc($Array_1,$Array_2)和Array_diff_assoc($Array_2,$Array_1)
因为使用等于运算符进行实验,它只会在两个数组的顺序相同时返回一个succession否,关于上面的链接,如果使用
===
操作符,它会检查顺序,
==
只检查相等的键/值对。我只编写了一个简单的脚本来测试它,它的工作原理与我上面解释的一样。