Возникла задача сравнить на 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) )