PHP массив ассоциативный или последовательный ?
Недавно возникла ситуация в которой нужно было проверить, что пришедший массив был ассоциативный или последовательный. Такой вот ответ возвращала платежная система. Он мог быть
"errors":{"amount":["The amount field is required."],"currency":["The currency field is required."]}
или вот таким
"errors":["IP address not allowed"]
Что бы правильно отобразить пользователю ошибки необходимо правильно распарсить пришедший ответ. Для этого мне помогла вот такая функция:
function isAssoc(array $arr) { if (array() === $arr) return false; return array_keys($arr) !== range(0, count($arr) - 1); }