Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
ВнизПервый элемент массива PHP? Найти похожие ветки
← →
My_name (2009-06-22 18:01) [0]Интересует как достать первый элемент массива в PHP, если он(массив) начинается не с 0 элемента, допустим ассоциативный? Первое что приходит на ум мне:
foreach ( $array as $element ) {
$firstElement = $element; break;
}
Но наверняка есть ведь способ и поумней?)
← →
clickmaker © (2009-06-22 18:11) [1]$array[array_keys($array)[0]]
← →
McSimm © (2009-06-22 18:19) [2]reset(); current();
← →
palva © (2009-06-22 19:11) [3]
> $array[array_keys($array)[0]]
Хитро. Тогда уж лучше array_values($array)[0]
Только одним оператором без промежуточной переменной это тоже не заработает (почему-то).
Надо так:$a=array_values($array);
$v= $a[0];
Лучший способ (ИМХО) указал McSimm
← →
My_name (2009-06-22 19:14) [4]current() написано вернет FALSE даже если элемент массива ( "", 0 ) php.net рекомендует использовать each()...
← →
palva © (2009-06-22 19:30) [5]
> current() написано вернет FALSE
Брешут. Проверьте:$array = array(3=>"", 5=>55, "a"=>"aa");
reset($array);
echo gettype(current($array)); // string
Другое дело, если первый элемент массива FALSE, тогда действительно вы не сможете отличить то ли массив пустой, то ли первый элемент равен FALSE. Но даже и тогда менее затратно проверить ключ функцией key. Поскольку each возвращает массив из четырех элементов (на все случаи жизни).
← →
palva © (2009-06-22 19:53) [6]Поясню. Ключ всегда число или строка. Поэтому проверяя то, что вернет key на NULL вы поймете, что находитесь вне массива (массив пустой).
Даже если вы попробуете создать массив с ключом NULL он будет заменен на пустую строку:$array = array(NULL=>FALSE, 5=>55, "a"=>"aa");
$array[""]=33;
reset($array);
echo gettype(key($array))."\n"; // string;
echo current($array)."\n"; // 33;
$array = array();
reset($array);
echo is_null(key($array))."\n"; // 1
← →
Дмитрий С © (2009-06-23 10:00) [7]reset($arr)
if (list($dummy, $value)=each($arr)) {
:)
}
← →
test © (2009-06-23 10:02) [8]А разве в PHP нет ?
for each elem in list do
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c