- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
function is_array_assoc($arr) {
if (is_array($arr)) {
foreach ($arr as $k => $v) {
if (is_string($k) || (is_int($k) && $k < 0)) {
return 1;
}
}
return 0;
}
return -1;
}
Непонятно лишь, что именно считать "индексным массивом". И, главное, зачем?
и мне на практике пригодилось лишь один раз. Да и то скорей всего потому что я ещё неправильно структуру строил в школьном-то возрасте. :)
...Ну почти то же самое. Совсем то же было бы через !ctype_digit(implode('', array_keys($arr));
Там же как раз похожая проверка должна делаться.
поэтому для сохранения ассоциативности лучше использовать буквенные ключи, а если нужны таки числа, то маскировать их от пхп, скажем, подчеркиваниями.
Бывает когда из базы выборку делаешь, раскладываешь всё в массив по $items[$row->id] = $row; - а там поди потом разбери как обратиться из другого места - строковый ключ или числовой. :)