От автора: синтаксис всегда важен. Порой от его правильности зависит не только работоспособность кода, но и ваше настроение. Вот я в прошлую пятницу не придерживался синтаксиса набора номера, и вместо друга нечаянно позвонил теще, пригласил ее на субботнее пиво. А она (специально, наверное) приглашение приняла. Так что мне сегодня некогда, поэтому быстренько рассматриваем PHP определение массива и по домам!
Правильный синтаксис
Насчет тещи я серьезно, так что прошу вас быть внимательней. Субботнее пиво с тещей – это то же самое, как рыбалка с женой, или даже хуже. Но вернемся к правильному синтаксису массивов.
Чтобы объявить массив в PHP, используется языковая конструкция array(). В версиях языков 5.4 и более поздних появился упрощенный вариант с квадратными скобками. Давайте рассмотрим оба варианта синтаксиса на примерах:
1 2 3 4 |
<?php $arr1 = array("один","два","три","четыре","пять","шесть","семь"); print_r($arr1); ?> |
Как определить массив PHP, начиная с версии языка 5.4:
1 2 3 4 |
<?php $arr1 = ["один","два","три","четыре","пять","шесть","семь"]; print_r($arr1); ?> |
Но в более ранних версиях этот синтаксис приведет к выводу сообщения об ошибке:
Поэтому перед инициализацией массива нужно проверить текущую версию используемого экземпляра языка. Например, с помощью функции phpinfo():
Простой синтаксис объявления массива
Кроме этого определение массива PHP может происходить явно без конструкции array() и сокращенного синтаксиса. При этом PHP автоматически присваивает каждому элементу массива значение порядкового индекса (ключа). Например:
1 2 3 4 5 6 7 8 9 10 |
<?php $arr1[]="один"; $arr1[]="два"; $arr1[]="три"; $arr1[]="четыре"; $arr1[]="пять"; $arr1[]="шесть"; $arr1[]="семь"; print_r($arr1); ?> |
Но иногда требуется получить в PHP значение определенного элемента массива. Для этого можно явно обратиться к этому элементу, указав в скобках значение индекса. При этом не забываем, что индексация начинается с 0, а не с единицы.
1 2 3 4 5 6 7 8 9 10 |
<?php $arr1[]="один"; $arr1[]="два"; $arr1[]="три"; $arr1[]="четыре"; $arr1[]="пять"; $arr1[]="шесть"; $arr1[]="семь"; echo $arr1[2]; ?> |
Также в языке существует целый ряд встроенных функций, позволяющих вывести значения элементов, отвечающих определенным условиям. Например, первый или последний элемент:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $arr1[]="один"; $arr1[]="два"; $arr1[]="три"; $arr1[]="четыре"; $arr1[]="пять"; $arr1[]="шесть"; $arr1[]="семь"; echo "Первый элемент массива: ".array_shift($arr1)."<br />"; echo "Последний элемент массива: ".array_pop($arr1)."<br />"; ?> |
Но как определить длину массива в PHP. Для этого существует специальная функция count(). Она возвращает количество элементов массива, передаваемого ей в качестве аргумента. Пример реализации:
1 2 3 4 5 6 7 8 9 10 |
<?php $arr1[]="один"; $arr1[]="два"; $arr1[]="три"; $arr1[]="четыре"; $arr1[]="пять"; $arr1[]="шесть"; $arr1[]="семь"; echo "В массиве ".count($arr1)." элементов"; ?> |
Аналогом (псевдонимом) данной функции является sizeof(). Результат ее применения аналогичен предыдущему:
Ну, а насчет своей тещи я пошутил. Даже рад, что она согласилась провести вечер за пивом с родным зятем… Наконец-то ушла! А то стояла за спиной и подглядывала, что я про нее пишу. Сами понимаете, ситуация щекотливая, однако :).