- 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;
}
WGH 09.07.2012 19:30 # +5
mkusher 09.07.2012 19:35 # 0
WGH 09.07.2012 19:44 # 0
Непонятно лишь, что именно считать "индексным массивом". И, главное, зачем?
bormand 09.07.2012 19:52 # +1
Lowezar 09.07.2012 20:42 # +1
и мне на практике пригодилось лишь один раз. Да и то скорей всего потому что я ещё неправильно структуру строил в школьном-то возрасте. :)
...Ну почти то же самое. Совсем то же было бы через !ctype_digit(implode('', array_keys($arr));
anonimb84a2f6fd141 09.07.2012 21:24 # 0
Там же как раз похожая проверка должна делаться.
Lure Of Chaos 09.07.2012 23:01 # +3
поэтому для сохранения ассоциативности лучше использовать буквенные ключи, а если нужны таки числа, то маскировать их от пхп, скажем, подчеркиваниями.
Lowezar 10.07.2012 00:18 # 0
Бывает когда из базы выборку делаешь, раскладываешь всё в массив по $items[$row->id] = $row; - а там поди потом разбери как обратиться из другого места - строковый ключ или числовой. :)
eth0 10.07.2012 14:06 # +7
Vasiliy 12.07.2012 09:50 # 0
bormand 12.07.2012 10:26 # +2
roman-kashitsyn 12.07.2012 10:27 # +5
bormand 12.07.2012 10:34 # +2