Функции для работы с массивами в php

Четверг, 12 августа 2010 г.
Рубрика: PHP программирование -> Функции
Метки: | |
Просмотров: 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 на истину, если да то етсь, если нет, то

нет.

Поделиться...
twitter.com facebook.com vkontakte.ru mail.ru google.com bobrdobr.ru
Комментариев: 1
  1. У меня товарищ по-другому массивы прописывает - у него больше переменных .... Так проще получается ... Найду код - выложу в комментах !!! Спасибо за совет .

Оставьте свой комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор, укажите пароль и свой действующий email.

(обязательно)