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否,关于上面的链接,如果使用===
操作符,它会检查顺序,==
只检查相等的键/值对。我只编写了一个简单的脚本来测试它,它的工作原理与我上面解释的一样。