Сравнить два массива на PHP

Возникла задача сравнить на 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) )
Запись опубликована в рубрике Работа с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий