От автора: ох, как бы мне сейчас пригодился обычный массив! С дочкой второй день собираю пазл. Точнее, никак не начну, поскольку не могу найти «отправную точку». А в PHP первый элемент массива находится всего в несколько строк кода.
Возможности ПХП
Я уже говорил, что PHP обладает широчайшим набором средств для работы с массивами. Конечно, их количество впечатляет. Это хорошо, что какую-то операцию можно реализовать с помощью нескольких функций. Но тут есть и свои подводные камни – такое разнообразие нужно знать. И на его изучение придется потратить больше времени. А его (как всегда) так не хватает!
Так что постараемся сегодня максимально глубоко «нырнуть» в изучение возможностей PHP для получения первого элемента массива. Начнем с функции array_shift(). Мы уже сталкивались с ней. Напомню, что она изымает из массива начальный элемент и возвращает его. Пример:
1 2 3 4 5 6 7 8 9 |
$pazl = array("голова","ухо левое","лапа","хвост","нога левая","бровь правая","глаз","ноздри","ухо правое"); echo "<b>Исходный массив</b><br />"; print_r($pazl); $first_element =array_shift($pazl); echo "<br />"; echo "<b>Массив без первого элемента </b><br />"; print_r($pazl); echo "<br />"; echo "<b>Первый элемент</b>: $first_element"; |
Менее «кровавые» способы
Но существуют менее «кровавые» способы в PHP извлечения первого элемента массива. Например, функция current(). Она возвращает тот элемент, на который указывает его внутренний указатель. По умолчанию это значение, с которого начинается массив (первоначально созданный элемент). Пример реализации:
1 2 3 4 5 6 7 8 |
<?php $pazl = array("голова","ухо левое","лапа","хвост","нога левая","бровь правая","глаз","ноздри","ухо правое"); echo "<b>Исходный массив</b><br />"; print_r($pazl); $first_element =current($pazl); echo "<br />"; echo "<b>Первый элемент</b>: $first_element"; ?> |
Но перед тем как вывести первый элемент массива, вам придется заморочиться с положением внутреннего указателя. Особенно, если в программном коде массив несколько раз модифицируется. Тогда лучше воспользоваться функцией array_slice(). Она возвращает заданный диапазон элементов:
1 2 3 4 5 6 7 8 9 |
<?php $pazl = array("голова","ухо левое","лапа","хвост","нога левая","бровь правая","глаз","ноздри","ухо правое"); echo "<b>Исходный массив</b><br />"; print_r($pazl); $first_element =array_slice($pazl,0,1); echo "<br />"; echo "<b>Первый элемент</b>:"; print_r($first_element); ?> |
Использование массива
Также взять первый элемент с массива PHP можно с помощью цикла. Чаще всего для переборки применяется for. Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $pazl = array("голова","ухо левое","лапа","хвост","нога левая","бровь правая","глаз","ноздри","ухо правое"); echo "<b>Исходный массив</b><br />"; print_r($pazl); echo "<br />"; for($z=0;$z<count($pazl);$z++) { if($z==0) { echo "<b>Первый элемент: $pazl[$z]</b><br />"; } } ?> |
Хотя таким образом получить в PHP первый элемент ассоциативного массива едва ли удастся. Для таких структур лучше использовать описанные выше функции. Иначе вы получите совсем уж запутанный пазл. Кстати, свой я так и не собрал: одно ухо оказалось лишним :).