PHP статьи и уроки PHP для начинающих. Уроки по PHP.
Работа с массивами, графикой, звуком, базами данных.
Работа с протоколами на сервере HTTP и FTP.
Приветствую Вас, Гость!

Меню сайта
Категории каталога
Общие вопросы
Общие вопросы программирования на PHP
PHP в примерах
рассматриваются конкретные практические примеры скриптов PHP
Безопасность сайта
При создании сайта необходимо защитить его от несанкционированного доступа
Интересное:
Реклама:
Смотрю "Записки о MacBook и Mac OS", в блоге gamedev программиста.
Главная » Статьи » Уроки » PHP в примерах

Массивы в примерах (часть 2)

Операции над массивами (сборник рецептов)

1) Определения числа элементов в массиве count():

Создадим массив $name:

$name = array('Boss', 'Lentin', 'NAV', 'Endless', 'Dragons', 'SiLeNT', 'Doctor', 'Lynx');
?>

Чтобы определить число элементов в массиве можно поступить следующим образом:

echo ‘Число элементов в массиве - .count($name);
?>

Результат:

Число элементов в массиве – 8

2) Объединение массивов

a) Создадим два ассоциативных массива $a и $b:

$a = array(“a” => ”aa”, “b” => “bb”);
$b = array(“c” => ”cc”, “d” => “dd”);
?>

Пусть необходимо создать массив $c, которые будет содержать как элементы массива $a так и массива $b:

$a = array("a"=>"aa", "x"=>"xx");
$b = array("c"=>"cc", "d"=>"dd");
$c = $a + $b;
echo
"

"; 
print_r($c);
echo
"
";
?>

Результат:

Array
(
[a] => aa
[x] => xx
[c] => cc
[d] => dd
)

b) Создадим два числовых массива $a и $b:

$a = array(10,20);
$b = array(100,200,300,400,500);
?>

Их уже не получится объединить при помощи конструкции $c = $a + $b;. Для их объединения потребуется воспользоваться функцией array_merge():

$c = array_merge($a,$b);
?>

3) Сортировка массива

Воспользуемся массивом $name:

$name = array('Boss', 'Lentin', 'NAV', 'Endless', 'Dragons', 'SiLeNT', 'Doctor', 'Lynx');
?>

Пусть требуется отсортировать массив в алфавитном порядке, для этого можно воспользоваться следующим кодом:

sort($name);
echo
"

"; 
print_r($name);
echo
"
";
?>

Результат:

Array
(
[0] => Boss
[1] => Doctor
[2] => Dragons
[3] => Endless
[4] => Lentin
[5] => Lynx
[6] => NAV
[7] => SiLeNT
)

Пусть необходимо из массива $name выбрать самый короткий элемент(у которого наименьшее количество символов), в этом случае можно воспользоваться кодом:

$name = array('Boss', 'Lentin', 'NAV', 'Endless', 'Dragons', 'SiLeNT', 'Doctor', 'Lynx');
$min = strlen($name[0]);
$nam = $name[0];
for (
$i=1; $i < count($name); $i++)
{
$len = strlen($name[$i]);
if (
$len < $min)
{
$nam = $name[$i];
$min = strlen($nam);
}
}
echo
'Наименьшая длина - '.$nam;
?>

4) Перемещение внутри массива

Создадим массив $num:

$num = array(1,2,3,4,5,6,7,8,9,10);
?>

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

$end = end($num);
While (
$end)
{
echo
$end.' - ';
$end = prev($num);
}
?>

Результат:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

Приведённый выше код можно модифицировать:

$num = range(1,10);
print_r (array_reverse($num));
?>

Функция range(1,10) создает массив (1,2,3,4,5,6,7,8,9,10) со случайным расположением элементов. Функция array_reverse() принимает массив и располагает элементы в обратном порядке (10,9,8,7,6,5,4,3,2,1)

Функции next(), each() перемещают указатель на один элемент вперед. Функция reset() возвращает указатель на 1 элемент в массиве. Воспользуемся массивом $num:

$num = array(1,2,3,4,5,6,7,8,9,10);
?>

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

$i=0; //Индекс 1 элемента
while ($i < count($num))
{
echo
$num[$i].' ';
$i++;
//Проверка если $i равен числу элементов в массиве
//тогда выводим последний элемент и возвращаем указатель
if ($num[$i] == count($num))
{
echo
$num[$i];
reset ($num);
echo
'
'
."Конец массива";
exit();
}
}
?>

Результат:

1 2 3 4 5 6 7 8 9 10
Конец массива

5) Перемешивание элементов в массиве shuffle()

Функция shuffle() перемешивает значения в массиве, и если массив ассоциативный то возвращает его как список:

$a = array(43,'PHP',4,57,'Boss',90);
shuffle($a);
foreach (
$a as $n) echo "$n ";
?>

6) Случайный элемент массива

Если имеется готовый массив, из которого необходимо вывести один случайный элемент, для этого необязательно перемешивать весь массив при помощи функции shuffle(), достаточно сгенерировать случайный индекс массива:

// Определяем массив
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// Генерируем случайный индекс массива
$index = rand(0,count($arr) - 1);
// Выводим случайный элемент массива
echo $arr[$index];
?>

7) Получение части массива array_slice()

Создадим массив $a

$a = array(‘a’,’b’,’3’,’5’,’f’);
?>

Получить часть массива можно при помощи следующего кода:

$b = array_slice($a, 2) // вывод 3, 5, f
$b = array_slice($a,0,3) // a, b, 3
?>

8) Сериализация массива

Функции serialize() и unserialize() позволяют осуществлять упаковку и распаковку, соответственно, массивов и объектов.

Замечание

Сериализация впервые появилась в объектно-ориентированных библиотеках, (первой из которых была MFC), потом сериализация стала появляться в объектно-ориентированных языках (Java). Идея сериализации заключается в том, что объекты и массивы очень сложны по своей структуре и на сохранения их путём перебора каждого элемента требуется значительный объём кода — самым простым решением является сохранение таких структур в виде единой закодированной последовательности — байт-коде. В PHP функции сериализации упаковывают данные не виде байт-кода, а виде строки.

$poll[0] = 23;
$poll[1] = 45;
$poll[2] = 34;
$poll[3] = 2;
$poll[4] = 12;
// Упаковываем массив в строку
$str = serialize($poll);
echo
$str."
"
;
// Извлекаем массив из строки
$arr = unserialize($str);
print_r($arr);
?>

Результат:

a:5:{i:0;i:23;i:1;i:45;i:2;i:34;i:3;i:2;i:4;i:12;}
Array
(
[0] => 23
[1] => 45
[2] => 34
[3] => 2
[4] => 12
)



Источник: http://softtime.ru
Категория: PHP в примерах
Просмотров: 5466
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright Viktor L.P. © 2017 Бесплатный конструктор сайтов - uCoz
down