سلام 2 تا آرایه داریم یکی a و یکی b
هر کدوم از این آرایه ها 2 بعدی هست
چطوری این 2 آرایه رو با هم مقایسه کنیم و بعد مقادیر متفاوت رو چاپ کنیم ؟
سلام و احترام
از تابع زیر استفاده کنید
function array_diff_assoc_recursive($array1, $array2)
{
foreach($array1 as $key => $value)
{
if(is_array($value))
{
if(!isset($array2[$key]))
{
$difference[$key] = $value;
}
elseif(!is_array($array2[$key]))
{
$difference[$key] = $value;
}
else
{
$new_diff = array_diff_assoc_recursive($value, $array2[$key]);
if($new_diff != FALSE)
{
$difference[$key] = $new_diff;
}
}
}
elseif(!isset($array2[$key]) || $array2[$key] != $value)
{
$difference[$key] = $value;
}
}
return !isset($difference) ? 0 : $difference;
}
مثال:
$a = [[1,23],[2,2,3,3,32,345,345],[456,4],[123,345]];
$b = [[123, 213],[456,456,457,5,7],[56745,634,56],[123,23]];
function array_diff_assoc_recursive($array1, $array2)
{
foreach($array1 as $key => $value)
{
if(is_array($value))
{
if(!isset($array2[$key]))
{
$difference[$key] = $value;
}
elseif(!is_array($array2[$key]))
{
$difference[$key] = $value;
}
else
{
$new_diff = array_diff_assoc_recursive($value, $array2[$key]);
if($new_diff != FALSE)
{
$difference[$key] = $new_diff;
}
}
}
elseif(!isset($array2[$key]) || $array2[$key] != $value)
{
$difference[$key] = $value;
}
}
return !isset($difference) ? 0 : $difference;
}
print_r(array_diff_assoc_recursive($a, $b));
نتیجه:
Array ( [0] => Array ( [0] => 1 [1] => 23 ) [1] => Array ( [0] => 2 [1] => 2 [2] => 3 [3] => 3 [4] => 32 [5] => 345 [6] => 345 ) [2] => Array ( [0] => 456 [1] => 4 ) [3] => Array ( [1] => 345 ) )
موفق باشید