سلام 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 ) )
موفق باشید