Работа с массивами в PHP

Один из самых используемых инструментов в языке PHP — это массивы. Поэтому, важно не только знать что такое массив, но и уметь правильно пользоваться тем разнообразием функций, которые предлагает PHP при обработке массивов.

Прежде чем перейти к основной теме статьи хочется дать один простой, но очень важный совет всем начинающим веб-программистам. (Этот совет настолько важен, что я даже позволил себе нарушить порядок изложения материала).

Если Вы программируете на PHP и у Вас появилась необходимость обработать данные сохраненные в массиве. Прежде чем писать собственную функцию обработки, проверьте что Ваша задача точно не может быть решена стандартными функциями PHP.


Помните, для действительно важных и часто встречающихся задач при обработке массивов существуют готовые функции и конструкции языка, которые созданы с единственной целью — максимально ускорить работу скриптов.

Вероятность того, что Ваша задача уникальна и требует особого решения крайне мала. Даже если задача не решается с помощью одной функции, постарайтесь разбить ее на несколько более простых частей и использовать готовые функции PHP.

Теперь, после того, как мы уяснили важность использования стандартных функций PHP для обработки массивов давайте вернемся к теме статьи.

Что такое массив?

Так как эта статья рассчитана на новичков, то и начать стоит с определения того, чем же все-таки является массив. Вот мое вольное определение массива:

Массив — это переменная содержащая набор различных значений, доступных по уникальному индексу (индекс элемента массива).


Как в PHP создать массив

В PHP массив создается с помощью служебного слова array(). Существуют два варианта создания массива — это создание «пустого» массив и массива с предопределенными величинами:


$emptyArr = array(); // «пустой» массив
$someArr = array( 1, 2, 'Москва' ); // массив состоящий из элементов чисел «1», «2» и слова «Москва»;


В данном пример хотелось бы обратить внимание, на несколько вещей:

Во-первых, переменные, содержащиеся в массиве, могут быть разных типов. Так в массиве $someArr содержатся две целочисленные переменные и одна строковая.

Во-вторых, в приведенном определении массива, говорилось о том, что каждый элемент должен иметь уникальный индекс, а в примере этих индексов не видно.

Все дело в том, что в случае если при создании массива индексы не указаны явно, они будут созданы автоматически. Каждому элементу будет сопоставлен индекс вычисленный по следующей формуле:

«индекс» = «порядковый номер элемента» — 1


Конечно, если нас не устраивает, то каким образом PHP расставляет индексы массивов, мы можем определить их самостоятельно:

$someArr = array( 100 => 1, 200 => 2, 'city' => 'Москва' );


В данном примере числу «1» сопоставлен индекс «100», числу «2» индекс «200», а слову «Москва» сопоставлен строковый индекс «city».

Таким образом, мы приходим к третьему выводу о том, что в PHP индексами массива могут быть не только целые числа, но и строковые значения.

Как получить элемент массива в PHP?

Удобство массива заключается в том, что с ним можно работать как с обычной переменной — т.е. передавать в функцию, присваивать одному массиву другой и т.д. Но рано или поздно встает задача получить один конкретный элемент массива. Тогда нужно использовать следующий синтаксис:


$someArr = array(1, 2, 'Москва');

echo $someArr[2]; // Москва
echo $someArr[1]; // 2


В примере я не стал присваивать собственный индекс каждому элементу, а ограничился теми индексами которые создал PHP.

Теперь, что делать если нам нужно получить все элементы массива? Для этого в PHP есть специальная конструкция foreach.

Конструкция FOREACH

Как было сказано ранее, при работе с массивами в PHP лучше использовать стандартные функции и конструкциии языка, а не придумывать велосипед. Поэтому давайте познакомимся поближе с наиболее часто используемой конструкцией — foreach:


$someArr = array( 1, 2, 'Москва');
foreach($someArr as $index => $value) {
echo 'Индекс элемента массива = '. $index .', значение = '.$value; // выводит на экран значения всех переменных массива.

}


Как видите, все просто, сначала мы указываем имя конструкции — «foreach», затем в параметрах конструкции указываем имя массива, который нужно «перебрать» — «$someArr», а затем с помощью служебного слова «as», указываем какое какое имя будет у переменной содержащей индекс элемента массива — «$index» и значение элемента массива — $value.
  • 0
  • 26 февраля 2010, 08:16
  • admin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
автоматические выключатели купить