Функции для работы с массивами в php
Четверг, 12 августа 2010 г.Рубрика: PHP программирование -> Функции
Метки: count | sort | функции для работы с массивами
Просмотров: 896
Подписаться на комментарии по RSS
Мы снова возвращаемся к стандартным функциям, которые есть в языке
php.
Первая функция, которую мы рассмотрим, называется - count - эта функция
возвращает кол-во элементов в массиве.
<?php
$a = array ('Первый', 'Второй', 'Третий');
$num = count ( $a );
echo $num;
Как видите из этого примера - мы создали массив $a, в который занесли
три значения - Первый Второй Третий - после при помощи функции count
вернули переменной $num кол-во элементов в массиве, а именно 3.
Следующая функция - extract - она создаёт переменные с именами ключей
массива.
Для примера нам понадобится - один ассоциативный массив ( эта функция
работает только с ассоциативными массивами ), потом несколько значений
для этого массива.
<?php
$a = array (
'one'=>'Первый',
'two'=>'Второй',
'three'=>'Третий'
);
extract ( $a );
echo $one."<br />";
echo $two."<br />";
echo $three;
А теперь давайте разберём:
Сначала мы создаём ассоциативный массив - массив у которого строковый
индекс, потом при помощи функции extract создаём переменные с именами
индексов ( ключей ) массива - а именно $one $two $three - эти переменные
будут содержать значения элементов массива.
Потом выводим все переменные со значениями - Первый Второй Третий. И
запомните функция extract работает только с ассоциативными массивами.
Дальше идёт функция - array_merge - которая объеденяет два или более
массивов в один.
Для начала хочу заметить, что функции которые можно занести в массив в
начале названия имеют приставку array, а в тех которых нет такой
приставки нельзя, что значит то, что они не возвращают результат,
который можно было бы занести в массив, к примеру функция extract.
Функция array_merge соеденяет массивы в один
<?php
$a = array (
'one'=>'Первый',
'two'=>'Второй',
'three'=>'Третий'
);
$a2 = array (
'four'=>'Четвёртый',
'five'=>'Пятый'
);
$a = array_merge ( $a, $a2 );
print_r ( $a );
Как видите из этого примера - сначала мы создали два массива, потом
объеденили их в один и записали результат в массив $a, после чего вывели
весь массив.
Теперь идёт функция - array_unicue - она удаляет одинаковые значения из
массива - к примеру у нас в массиве повторяется значение Третий, то
после работы этой функции одно из этих значений удалится.
<?php
$a = array (
'one'=>'Первый',
'two'=>'Второй',
'three'=>'Третий'
);
$a2 = array (
'four'=>'Четвёртый',
'five'=>'Пятый',
'six'=>'Третий'
);
$a = array_merge ( $a, $a2 );
$a = array_unique ( $a );
print_r ( $a );
После выполнения скрипта на экран вывидутся пять значений из шести,
потому что одно повторяющееся значение было удалено.
Следующая функция - shuffle - она перемешивает значения в массиве.
<?php
$a = array (
'one'=>'Первый',
'two'=>'Второй',
'three'=>'Третий'
);
$a2 = array (
'four'=>'Четвёртый',
'five'=>'Пятый',
'six'=>'Третий'
);
$a = array_merge ( $a, $a2 );
$a = array_unique ( $a );
shuffle ( $a );
print_r ( $a );
При каждом обновлении страницы у нас будет выводится список зачений
элементов массива в разном порядке, только ключи ( индексы ) будут
стоять на месте.
Функция sort - сортирует значения массива по алфавиту.
<?php
$a = array (
'one'=>'Первый',
'two'=>'Второй',
'three'=>'Третий'
);
$a2 = array (
'four'=>'Четвёртый',
'five'=>'Пятый',
'six'=>'Третий'
);
$a = array_merge ( $a, $a2 );
$a = array_unique ( $a );
sort ( $a );
print_r ( $a );
После выполнения скрипта на экране появится список значений элементов
массива в алфавитном порядке.
Функция ksort - сортирует ключи ( индексы ) массива по алфавиту,
действует также как и предыдущая функция только с ключами.
<?php
$a = array (
'one'=>'Первый',
'two'=>'Второй',
'three'=>'Третий'
);
$a2 = array (
'four'=>'Четвёртый',
'five'=>'Пятый',
'six'=>'Третий'
);
$a = array_merge ( $a, $a2 );
$a = array_unique ( $a );
ksort ( $a );
print_r ( $a );
После выполнения скрипта на экране появится список элементов массива
отсортированный по ключам.
Следующая функция - list - она присваивает переменным значения элементов
массива, только названия переменных Вы должны будете прописывать сами, и
эта функция не работает с ассоциативнымы массивами, а только с
массивами у которых числовой индекс
<?php $a = array ( 'Первый', 'Второй', 'Третий' ); list ( $a, $b, $c ) = $a; echo $a."<br />"; echo $b."<br />"; echo $c;
Как видите из этого примера сначала пишем функцию потом в скобках
названия переменных, в которые будем заносить значения элементов
массива, после знака = пишем обрабатываемый массив.
И последняя функция определяет есть ли елемент в массиве, если есть то
возвращает true ( истину ) или false ( ложь ) называется она - in_array.
<?php
$a = array ( 'Первый', 'Второй', 'Третий' );
$search = in_array ( 'Второй', $a );
if ( $search == 'TRUE' ) {
echo "В массиве есть такое значение";
}
else {
echo "В массиве нет такого значения";
}
В этом примере мы сначала создали массив, потом функцией проверели есть
ли значение 'Второй' в массиве $a - такая запись - $переменная =
in_array ( 'что ищем', 'массив' );
При проверке выдаст true и занесёт в переменную $search, дальше
проверяем переменную $search на истину, если да то етсь, если нет, то
нет.


У меня товарищ по-другому массивы прописывает - у него больше переменных .... Так проще получается ... Найду код - выложу в комментах !!! Спасибо за совет .