Данны массивы:
$firstArr["name"] = 20;
$firstArr["age"] = 1;
$firstArr["lastname"] = 3;
$secondArr["age"] = 2;
$secondArr["lastname"] = 3;
$secondArr["name"] = 10;
$secondArr["drisnya"] = 13;
Мне нужно точно узнать полностью ли совпадают массивы по ключам.
Спешу опередить вашу мысль, следующее меня не устраивает:
if(array_keys($secondArr) == array_keys($firstArr))
Т.к. индесы разные получаются от
array_keys
, потому что элементы массивов могут создаваться в любом порядке. Поэтому это условие выдаст false.
Функция
array_diff_key()
тоже не подходит, потому что она выдает разницу первого массива от второго, но не наоборот. Т.е. эта функция не заметит наличие лишнего элемента массива переданного в качестве второго аргумента.
Ну подходит только в следующем варианте:
if(array_diff_key($firstArr,$secondArr)&&array_diff_key($secondArr,$firstArr))
(Во втором условии, в функции аргументы местами поменяны)
Т.е. если в первом условии пустой массив и во втором пустой - то массивы 100% равны по ключам.
На этом я и остановился. Извращение какое-то. Просто не верится что нет другого способа решить, казалось бы простую и распространенную задачу, - равны ли массивы по ключам.