Справочники, инструменты, документация

PHP: Массивы

Массив - это набор данных, которые объединены под одним именем. Массив состоит из нескольких элементов, которые имеют свой определенный индекс. Массивы создаются при помощи оператора присвоения, также как и переменная.

Индексные массивы

Массивы - это набор переменных. Не так часто встречается необходимость заполнять массив при помощи конструкции array(), тем не менее опишем этот способ.

$name=array('cat','dog','mouse');
echo $name[0];//cat
echo $name[1];//dog
echo $name[2];//mouse

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

$name=array(1=>'cat',2=>'dog',3=>'mouse');
echo $name[1];//cat
echo $name[2];//dog
echo $name[3];//mouse

В примере мы заполнили массив с индексами от 1 до 3, переменная с индексом 0 осталась пустой.

Еще один способ присвоить отдельному элементу массива значение - сделать это, как присвоение значения переменной.

$day[1]='Понедельник';
$day[2]='Вторник';
$day[3]='Среда';
$day[4]='Четверг';
$day[5]='Пятница';

Этим способом можно заполнять массив и не указывая индекс.

$day[]='Понедельник'; //0
$day[]='Вторник'; //1
$day[]='Среда'; //2
$day[]='Четверг'; //3
$day[]='Пятница'; //4

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

Ассоциативные массивы

Широкое применение эти массивы нашли в обработке значений, полученных из базы данных. Используя определенную функцию, массиву присваивается много значений. Нам остается лишь получить их из массива.

$arr=mysql_fetch_array($zapros);//присвоение массиву значений из базы данных
echo $arr['name'];//Имя
echo $arr['year'];//Год рождения
echo $arr['phone'];//телефон

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

PHP функция foreach

Функция позволяет получить все индексы и соответствующие им значения в массиве.

$ar['zuzu']='Интерес';
$ar['joi']='Маскарад';
$ar['liv']='Искренность';
//если нужны только значения (пример 1)
foreach ($ar as $result){
    echo $result;
}
//если нужны индексы и значения (пример 2)
foreach ($ar as $index => $result){
    echo $index.' : '.$result;
}

Foreach - циклическая функция, количество циклов в которой равно количеству элементов массива. В первом примере значение каждого элемента массива поочередно присваивается переменной $result, во втором - переменная $index приобретает значение индекса, а $result - значение элемента массива с этим индексом.

Функции работы с массивами

Количество элементов в массиве count:

echo count($massiv);

Сортировка элементов массива sort:

sort($massiv);
arsort($massiv); // сортировать в обратном порядке 

Удаление элемента массива unset:

unset($massiv[1]); // удаление элемента массива
unset($massiv); // удаление массива целиком

Поиск в массиве php array_search (функция array_search('что', где) осуществляет поиск по всем значениям массива, что бы вернуть индекс найденного элемента):

$massiv[1]='dog';
$massiv[2]='mouse';
$massiv[3]='keyboard';
echo array_search('mouse',$massiv); //результат 2

Перемешать массив shuffle:

shuffle($massiv);

Как подсчитать, сколько раз слово или фраза повторяется в массиве

Мы продолжаем с вами рассматривать различные нестандартные решения поставленных задач, как с помощью функции в PHP можно определить, сколько раз искомая фраза встречается в массиве. То, где это может вам пригодиться, думаю, вы решите сами, ведь именно вы рассматриваете и выбираете различные подходы к решению поставленных задач. А использовать мы будем следующую функцию (ее вы вставляете вверх вашего скрипта):

function substr_count_array($desired_array, $search) {
$count = 0;
foreach($desired_array as $desired_array_item) {
    $count += substr_count($desired_array_item, $search);
}
  return $count;
}

И, соответственно, пример ее применения:

$array = array("foo", "bar", "hallo", "world", "hallo"); // Искомый массив
echo substr_count_array($array, "hallo"); // Выведет 2

Сама по себе функция небольшая, как вы заметили, но полезная, и имеет место быть в арсенале разработчика.