Возникла задача сравнить на PHP два массива на полную идентичность. Т.е. не только совпадение ключей и значений, но и проверить последовательность расположения элементов относительно друг друга. И все еще усугублялось вложенностью массивов. Доходило до четырехмерного массива и больше.
В результате родилась вот такая функция.
function compare_array_data($a1, $a2) { reset($a1); reset($a2); while( ( $e1=each($a1) ) && ( $e2=each($a2) ) ) { if ( $e1["key"] !== $e2["key"] ) { return false; } if ( is_array($e1["value"]) && is_array($e2["value"]) ) { if ( compare_array_data($e1["value"], $e2["value"]) === false ) { return false; } } else { if ( $e1["value"] !== $e2["value"] ) { return false; } } } return true; }
Правда потом пришло озарение и задача решилась следующим образом
if ( print_r($a1, true) == print_r($a2, true) )