Пишем на PHP: Работа с массивами (начало). Массивы в PHP
Синтаксис
Определение при помощи array()
Массив может быть создан языковой конструкцией array() . В качестве параметров она принимает определенное количество разделенных запятыми пар key => value (ключ => значение).Key может быть либо integer , либо string . Если ключ - это стандартное представление integer , он так и будет интерпретироваться (т.е. "8" будет восприниматься как 8 , тогда как "08" будет интерпретироваться как "08"). В PHP нет разницы между индексными и ассоциативными массивами; существует только один тип массива, который может содержать и числовые, и строковые индексы. Значение может быть любого имеющегося в PHP типа.
Если вы не указываете ключ для приведенного значения, то берется максимальный числовой индекс и новый ключ будет равен этому максимуму + 1. Если вы укажите ключ, которому уже присвоено значение, оно будет перезаписано.
Используя в качестве ключа TRUE вы получите ключ 1 типа integer . Используя в качестве ключа FALSE вы получите ключ 0 типа integer . Используя в качестве ключа NULL , вы получите пустую строку. Использование в качестве ключа пустой строки создаст (или перезапишет) ключ с пустой строкой и его значение; это не то же самое, что использование пустых квадратных скобок. Вы не можете использовать в качестве ключей массивы или объекты. Это вызовет предупреждение: Illegal offset type ("Недопустимый тип смещения").
Создание/модификация с помощью синтаксиса квадратных скобок
Также вы можете изменять существующий массив, явно устанавливая значения в нем. Это выполняется присвоением значений массиву при указании в скобках ключа. Кроме того, вы можете опустить ключ, в этом случае добавьте к имени переменной пустую пару скобок (" "). Если массив $arr еще не существует, он будет создан. Таким образом, это еще один способ определить массив. Для изменения определенного значения просто присвойте элементу с его ключом новое значение. Если вы хотите удалить пару ключ/значение, вам нужно использовать функцию unset() .Замечание: Как уже говорилось выше, если вы не укажите в скобках ключа, то будет взят максимальный из существующих целочисленных индексов, и новым ключом будет это максимальное значение + 1. Если целочисленных индексов еще нет, то ключом будет 0 (ноль). Если вы укажите ключ, которому уже присвоено значение, оно будет перезаписано.Обратите внимание, что максимальный числовой ключ, используемый для этого не обязательно должен существовать в массиве в настоящий момент . Он просто должен был существовать с момента последнего переиндексирования массива. Это иллюстрирует следующий пример:
// Создаем простой массив.
Вышеприведенный пример выведет следующее:
$array = array(1 , 2 , 3 , 4 , 5 );
print_r ($array );// Теперь удаляем каждый элемент, но сам массив оставляем нетронутым:
foreach ($array as $i => $value ) {
unset($array [ $i ]);
}
print_r ($array );// Создаем элемент (обратите внимание, что новым ключом будет 5,
// а не 0, как вы возможно ожидали).
$array = 6 ;
print_r ($array );// Переиндексация:
$array = array_values ($array );
$array = 7 ;
print_r ($array );
?>Array ( => 1 => 2 => 3 => 4 => 5) Array () Array ( => 6) Array ( => 6 => 7)
Полезные функции
Для работы с массивами существует достаточное количество полезных функций. Смотрите раздел функции для работы с массивами .Замечание: Функция unset() позволяет удалять ключи массива. Обратите внимание, что массив НЕ будет переиндексирован. Если вы использовали только "обычные числовые индексы" (увеличивающиеся на единицу, начиная с нуля), вы можете переиндексировать массив используя array_values() .
Управляющая конструкция foreach существует специально для массивов. Она предоставляет возможность легко пройтись по массиву.
Массив делает и не делает
Почему $foo это неверно?
Вы всегда должны заключать индекс ассоциативного массива в кавычки. К примеру, пишите $foo["bar"], а не $foo. Но почему $foo это неверно? Возможно, вы встречали в старых скриптах следующий синтаксис:Это неверно, хотя и работает. Тогда почему же это неверно? Причина в том, что этот код содержит неопределенную константу (bar), а не строку ("bar" - обратите внимание на кавычки), и PHP в будущем может определить константу, которая к несчастью для вашего кода будет иметь то же самое имя. Это работает, потому что PHP автоматически преобразует голую строку (не заключенную в кавычки строку, которая не соответствует ни одному из известных символов) в строку, которая содержит голую строку. Например, если константа с именем bar не определена, то PHP заменит bar на строку "bar" и использует ее.
Замечание: Это не означает, что нужно всегда заключать ключ в кавычки. Нет необходимости заключать в кавычки константы или переменные , поскольку это помешает PHP обрабатывать их.error_reporting (E_ALL );
ini_set ("display_errors" , true );
ini_set ("html_errors" , false );
// Простой массив:
$array = array(1 , 2 );
$count = count ($array );
for ($i = 0 ; $i < $count ; $i ++) {
echo "\nПроверяем $i: \n" ;
echo "Плохо: " . $array [ "$i" ] . "\n" ;
echo "Хорошо: " . $array [ $i ] . "\n" ;
echo "Плохо: {$array["$i"]}\n" ;
echo "Хорошо: {$array[$i]}\n" ;
}
?>Замечание: Вышеприведенный код выведет следующее:
Дополнительные примеры, демонстрирующие этот факт:
Когда вы переведете error_reporting() в режим отображения ошибок уровня E_NOTICE (такой как E_ALL), вы увидите эти ошибки. По умолчанию error_reporting установлена их не отображать. Как указано в разделе синтаксис , внутри квадратных скобок (" [ " и " ] ") должно быть выражение. Это означает, что вы можете писать подобно этому:
Обратите внимание, что E_ERROR - это такой же верный идентификатор, как и bar в первом примере. Но последний пример по сути эквивалентен такой записи:
Поскольку E_ERROR соответствует 1 и т. д. Как мы уже объяснили в вышеприведенных примерах, $foo по-прежнему работает, но это неверно. Это работает, поскольку в соответствии со своим синтаксисом bar ожидается как константа. Однако, в данном случае константы с именем bar не существует. В таком случае PHP предполагает, что, написав bar , вы имели ввиду строку "bar" , но забыли указать кавычки.
Так что же в этом плохого?
Когда-нибудь в будущем команда разработчиков PHP возможно пожелает добавить еще одну константу или ключевое слово, либо вы можете ввести в ваше приложение еще одну константу и тогда у вас могут возникнуть проблемы. Например, вы уже не можете использовать таким образом слова empty и default , поскольку они являются зарезервированными ключевыми словами .Замечание: Повторим, внутри строки (string ), заключенной в двойные кавычки правильным является не окружать индексы массива кавычками, поэтому "$foo" является верным. Более подробно почему - смотрите вышеприведенные примеры, а также раздел обработка переменных в строках .
Преобразование в массив
Для любого из типов: integer , float , string , boolean и , если вы преобразуете значение в массив, вы получите массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали. Если вы преобразуете в массив объект (object ), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов. Если вы преобразуете в массив значение NULL , вы получите пустой массив.Примеры
Тип массив в PHP является очень гибким, поэтому мы приведем здесь несколько примеров, чтобы продемонстрировать вам все возможности массивов.Мы с вами изучили основы работы с массивами, у вас теперь есть понимание того, что такое массив, что такое цикл, и мы даже реализовали несколько своих функций для работы с массивами. Теперь вы готовы получить знания об уже готовых функциях для работы с массивами в PHP.
В этом плане стандартная библиотека функций предлагает нам большой выбор, практически на все случаи жизни. Я же постараюсь в этом уроке рассказать вам о тех функциях, с которыми лично мне приходится работать ежедневно. На мой взгляд, вся веб-разработка на PHP выглядит плюс/минус одинаково, и большинству разработчиков приходится работать с этими же функциями. Так что, функции для работы с массивами в PHP, перечисленные в этой статье, вам пригодятся с очень большой вероятностью. Итак, давайте посмотрим, какие же задачи нам чаще всего требуется решать при работе с массивами.
Проверка существования ключа в массиве
Зачастую мы не знаем, есть ли в массиве какой-либо ключ. И если мы попробуем обратиться по ключу, которого в массиве нет – возникнет ошибка. Простейший пример.
В результате, как и ожидали – ошибка.
Чтобы подобной ситуации избежать, следует проверять, есть ли такой ключ в массиве или нет. Для этого есть функция array_key_exists($key, $array). Она принимает на вход первым аргументом ключ, а вторым – массив, в котором его наличие нужно проверить. Возвращает true, если ключ найден, и false – если нет. Использование выглядит следующим образом.
Код доступен только после покупки курса PHP для начинающих .
Результат:
Проверка существования значения
Не менее часто приходится узнать, а есть ли значение в массиве. Например, мы хотим узнать, есть ли число 7 в массиве. Как мы помним, в прошлом уроке мы самостоятельно написали для этого функцию. Однако в реальном кодинге нужно по большей части пользоваться готовым. Эта функция называется in_array($needle, $array). Здесь $needle – это то, что ищется, $array – массив, в котором ищем. Она возвращает true, если значение найдено, и false – если нет. Выглядит её применение следующим образом.
Код доступен только после покупки курса PHP для начинающих .
Объединение массивов
Очень часто требуется объединить 2 массива в один. Для этого есть функция array_merge($array1, $array2). В качестве аргументов, как вы поняли, этой функции передаются массивы, которые нужно объединить. Возвращает эта функция получившийся массив.
Код доступен только после покупки курса PHP для начинающих .
Результат:
Обратите внимание, что если ключи будут строковыми, то поведение функции будет несколько иным. Если строковые ключи из $array2 будут пересекаться с ключами из массива $array1, то в результат для пересекающихся ключей попадут только значения из $array2. Они как бы перезапишут то, что было в первом массиве.
Код доступен только после покупки курса PHP для начинающих .
Результат получится следующим:
Это может быть удобно, когда нам необходимо обновить часть каких-то данных в массиве. Как в примере выше – мы обновили пароль, оставив логин прежним.
Другие функции
Функций для работы с массивами в PHP очень много. И остальные вы найдёте на сайте с документацией PHP .
А домашнее задание вам в этом поможет.
Если этот урок был вам полезен, расскажите об этом курсе своим знакомым или поделитесь на него ссылкой в социальных сетях.
1. Что такое массив PHP?
2. Пример массива PHP?
3. Одномерный массив (векторный)
— индексный
— ассоциативный
4. Двумерный массив (массив в массиве, матрица)
5. Функции для работы с массивами (массив в массиве, матрица)
Начать данную тему хотелось бы с отречённых примеров. Допустим, мы рассматриваем какого-либо человека . У него есть имя, фамилия, адрес, телефон, пол, рост, цвет глаз и так далее. Информацию по всем этим пунктам можно отнести к массиву данных о человеке.
Массив может быть другого типа, без какой-либо конкретики по пунктам. Будет только тема. Допустим, это web-прграммирование . А в качестве элементов будут языки — HTML , CSS , JavaScript , PHP , MySQL . Всего 5 элементов.
Исходя из последнего примера предположим массив:
web-программирование
1. HTML
2. CSS
3. JavaScript
4. PHP
5. MySQL
Теперь смотрим на данный пример и анализируем основные понятия.
Массив в PHP — это набор последовательно расположенных однотипных данных, связанных общей тематикой, число элементов которого фиксировано.
Массив в данном примере будет называться web-программирование .
У каждого элемента есть своё порядковое место, идентификатор.
Индекс
(ключ массива) — либо порядковый номер, либо текстовое значение, по которому можно идентифицировать элемент.
Индексами в примере выше будут числовые значение от 1 до 5 . При обращении к индексу 2 мы увидим CSS.
Пример массива в PHP
Теперь давайте рассмотрим вышеуказанный пример в синтаксисе PHP, а не русского языка. Допустим массив будет называться короче — web . В квадратных скобках будет вставлять индекс.
Давайте рассмотрим простой пример массива, где в значении индексов будут числовые значения, а создавать массив будем так, словно переменным присваиваем значения.
$web=’HTML’;
$web=’CSS’;
$web=’JavaScript’;
$web=’PHP’;
$web=’MySQL’;
$web; // данная переменная содержит массив с 5-ю элементами
// чтобы вывести один из элементов массива достаточно указать индекс в массиве
echo $web; // выведет PHP
Одномерный массив
ИНДЕКСНЫЙ МАССИВ
Выше, с web-программированием, мы рассмотрели как раз пример одномерного массива.
Таким способом он создаётся редко. Он скорее наглядно показывает структуру массива. Чаще прибегают к другому методу.
$web=array(‘HTML’,’CSS’,’JavaScript’,’PHP’,’MySQL’);
echo $web; // выведет ‘HTML’
echo $web; // выведет ‘JavaScript’
echo $web; // выведет ‘PHP’
Если Вы хотите задать значения индекса, то их надо указать следующим образом. Знак => является указателем для присваивания индекса значению или наоборот значению индекс.
$web=array(1=>’HTML’,2=>’CSS’,3=>’JavaScript’,4=>’PHP’,5=>’MySQL’);
echo $web; // HTML
echo $web; // CSS
echo $web; // PHP
В примере отсчёт начинается с 1. Переменная с индексом 0 вследствие этого пустая.
В следующем примере мы не будем указывать индекс.
$day=’Понедельник’; // индекс 0
$day=’Вторник’; // 1
$day=’Среда’; // 2
$day=’Четверг’; // 3
$day=’Пятница’; // 4
Можно проследить, что происходит последовательное заполнение с нуля.
АССОЦИАТИВНЫЙ МАССИВ
Зачастую возникает потребность в создании буквенного индекса для элемента массива. Как я упоминал выше, такой индекс должен состоять из латинских букв, а имя должно быть заключено в кавычки. Рассмотрим на примере человека.
$user[‘nick’]=’Logic’;
$user[‘name’]=’Павел’;
$user[‘age’]=’25’;
$user[‘sex’]=’Мужской’;
$user; // переменная $user содержит массив с 4-мя элементами с буквенными индексами
// выводим элемент массива, указывая его буквенный индекс
echo $web[‘name’]; // выведет ‘Павел’
Как видите, всё достаточно просто. Только значение индекса закавычиваем.
Двумерный массив
Если Вы пропустили первую часть с Одномерным массивом, то настоятельно советую прочитать.
Если говорить проще, то это массив в массиве. То есть элементов большого массива является другой. Подобные массивы очень тормозят работу скрипта, загружая оперативную память, поэтому для быстрой обработки подобных групп данных созданы Базы Данных (Что такое База данных?), но о ней позже. Давайте разберём пример двумерного массива.
// массив с названиями Частей Света
$m = array(‘Европа’,’Азия’,’Африка’,’Америка’,’Австралия и Океания’);
// массив с названиями Стран
$s = array(‘Россия’,’Украина’,’Беларусь’,’Казахстан’);
// массив с названиями Столиц
$с = array(‘Москва’,’Киев’,’Минск’,’Астана’);
// создаём двумерный массив География
$geography = array($m, $s, $с);
?>
Во включенных массивах, как Вы обратили внимание, может быть разное количество элементов. Из части про одномерные массивы следовало, что у каждого элемента массива может быть индекс. Так давайте для каждого включённого массива присвоим своё значение.
Для этого расширим последнюю строчку и напишем её следующим образом.
$geography = array(‘Части Света’=>$m, ‘Страны’=>$s, ‘Столицы’=>$с);
Функции работы с массивами php
Foreach — циклическая функция для работы с массивами, в которой количество циклов равно количеству элементов массива.
Имеет следующий вид.
Код PHP
foreach (массив as $ключ=>$значение)
команды;
Ну и сразу пример работы
// создаём массив со знаменитыми IT
$names["Ритчи"] = "Деннис";
$names["Томпсон"] = "Кен";
$names["Гейтс"] = "Билл";
$names["Джобс"] = "Стив";
foreach ($names as $key => $value) {
echo "$value $key";
}
?>
На экран скрипт выведет
Деннис Ритчи
Кен Томпсон
Билл Гейтс
Стив Джобс
Count
— функция, возвращающая количество элементов в массиве.
echo count($names); // в нашем примере с IT вернёт значение 4
Sort
— функция, сортирующая элементы массива. Удобна в случае числовых значений индекса.
Arsort
— функция, сортирующая элементы массива в обратном порядке.
sort($names); // сортирует по порядку. Удобно если в Индексе числа
arsort($names); // сортировать в обратном порядке. То есть по индексам элементы будут в порядке 3, 2, 1, 0
Unset
— функция, удаляющая элемент массива.
unset($massiv); // удаление элемента массива с индексом 2
unset($massiv); // удаление массива целиком
Array_search
— функция поиска в массиве.
Урок 7. Массивы в PHP
Имеет два аргумента. Проще говоря, имеет вил array_search(‘что’, где)
$animals=’dog’;
$animals=’cat’;
$animals=’bird’;
echo array_search(‘cat’,$animals); // выведет индекс элемента — цифру 2
Shuffle
— функция, которая перемешивает ключи значений массива.
shuffle($animals); // выстроит элементы в случайном порядке
Спасибо за внимание!
Предыдущая статья
Урок 6. Циклы в PHPСледующая статья
Урок 8. Подключение файла в PHP. Include и require
Комментарии к статье (vk.com)
Создает пустой массив.
Вы можете вывести значения в массив позже, например:
На данный момент $ myArray содержит «дерево», «дом» и «собака». Каждая из приведенных выше команд добавляется к массиву, сохраняя элементы, которые уже были там.
Придя с других языков, этот способ добавления массива мне показался странным. Я ожидал сделать что-то вроде $ myArray + = «собака» или что-то еще …
или, может быть, метод «add ()», такой как коллекции Visual Basic. Но этот прямой синтаксис append является коротким и удобным.
Вы действительно должны использовать функцию unset () для удаления элементов:
… удалит «дом» из массива (массивы основаны на нулевом значении).
Основы работы с массивами в PHP
… уничтожит весь массив.
Чтобы быть ясным, синтаксис пустой квадратной скобки для добавления к массиву — это просто способ сообщить PHP, чтобы автоматически присваивать индексы каждому значению, а не присваивать индексы. Покрытия, PHP на самом деле делает это:
Вы можете назначать индексы самостоятельно, если хотите, и можете использовать любые цифры, которые вы хотите. Вы также можете присвоить номера индексов некоторым элементам, а не другим. Если вы это сделаете, PHP заполнит недостающие номера индексов, увеличиваясь с самого большого номера индекса, назначенного по мере его поступления.
Поэтому, если вы это сделаете:
… для элемента «собака» будет присвоен индексный номер 21. PHP не выполняет интеллектуального сопоставления шаблонов для поэтапного присвоения индексов, поэтому он не будет знать, что вам, возможно, захотелось присвоить индекс 30 «собаке» ». Вы можете использовать другие функции, чтобы указать шаблон приращения для массива. Я не буду вдаваться в это, но все это в PHP-документах.
В некоторых других языках (например, AS3) было отмечено, что инициализация нового массива выполняется быстрее, если сделать это как а не для целей создания объекта и создания экземпляра. Интересно, существуют ли какие-либо эквивалентности в PHP?
Массивы в PHP. Работа с массивами в PHP.
В данной статье рассматривается работа с массивами в PHP (основы). Массивы в PHP – это тип данных, который позволяет сохранять несколько переменных в одной.
Вот один простой пример:
В приведенном выше примере $products – это массив, в котором мы сохранили несколько различных продуктов. Далее мы вывели все эти продукты, обращаясь к каждому через “индексы” (ключи) : 0, 1 и 2.
Конечно, отдельные значения можно хранить и в отдельных переменных, например, так:
Это, конечно, хорошо, но давайте представим, что нам потребовалось вдруг перебрать все эти элементы. Как тут быть? Писать код под каждую переменную? Это долго и неудобно. Решение – использование массивов.
Используя циклы мы можем на каждой итерации (шаге) получить доступ к очередному элементу, благодаря индексам (ключам).
Создание массива в PHP.
В php не требуется делать объявление массива. Создать массив мы можем, используя функцию array():
В данном случае мы создали пустой массив. Если же мы в скобках укажем несколько значений через запятую, то мы заполним данный массив несколькими элементами:
Виды массивов.
1. ”Индексируемые” массивы или “автомассивы”. Примеры такого массива мы уже приводили выше. Особенностью данных массивов является то, что они имеют числовые индексы, которые создаются автоматически (“на лету”). Нумерация элементов начинается с 0.
Как определить длину (размер) индексируемого массива.
Использование массивов
Используем функцию count() :
Перебор элементов. Перебрать все элементы автомассива можно с помощью конструкции for или foreach :
Чтобы добавить новый элемент в массив (осуществить запись в массив), нам достаточно выполнить следующую строку:
Перебор всех элементов ассоциативного массива осуществляется следующим образом:
3. Многомерные массивы содержат в качестве элементов другие массивы:
Мы можем создать и трехмерный массив:
вывод массива в PHP. Вывести любой массив можно с помощью функции print_r() , например:
При этом при удалении элемента индексы других элементов остаются неизменными.
Функции для работы с массивами:
Сортировка массивов
array_search – поиск значения в массиве
(массив в массиве, матрица)
Что такое массив PHP?
Начать данную тему хотелось бы с отречённых примеров. Допустим, мы рассматриваем какого-либо человека . У него есть имя, фамилия, адрес, телефон, пол, рост, цвет глаз и так далее. Информацию по всем этим пунктам можно отнести к массиву данных о человеке.Массив может быть другого типа, без какой-либо конкретики по пунктам. Будет только тема. Допустим, это web-прграммирование . А в качестве элементов будут языки - HTML , CSS , JavaScript , PHP , MySQL . Всего 5 элементов.
Исходя из последнего примера предположим массив:
web-программирование
1. HTML
2. CSS
3. JavaScript
4. PHP
5. MySQL
Теперь смотрим на данный пример и анализируем основные понятия.
Массив в PHP - это набор последовательно расположенных однотипных данных, связанных общей тематикой, число элементов которого фиксировано.
Массив в данном примере будет называться web-программирование .
У каждого элемента есть своё порядковое место, идентификатор.
Индекс
(ключ массива) - либо порядковый номер, либо текстовое значение, по которому можно идентифицировать элемент.
Индексами в примере выше будут числовые значение от 1 до 5 . При обращении к индексу 2 мы увидим CSS.
Пример массива в PHP
Теперь давайте рассмотрим вышеуказанный пример в синтаксисе PHP, а не русского языка. Допустим массив будет называться короче - web . В квадратных скобках будет вставлять индекс.Давайте рассмотрим простой пример массива, где в значении индексов будут числовые значения, а создавать массив будем так, словно переменным присваиваем значения.
$web="HTML";
$web="CSS";
$web="JavaScript";
$web="PHP";
$web="MySQL";
$web; // данная переменная содержит массив с 5-ю элементами
// чтобы вывести один из элементов массива достаточно указать индекс в массиве
echo $web; // выведет PHP
Одномерный массив
ИНДЕКСНЫЙ МАССИВВыше, с web-программированием, мы рассмотрели как раз пример одномерного массива.
Таким способом он создаётся редко. Он скорее наглядно показывает структуру массива. Чаще прибегают к другому методу.
$web=array("HTML","CSS","JavaScript","PHP","MySQL");
echo $web; // выведет "HTML"
echo $web; // выведет "JavaScript"
echo $web; // выведет "PHP"
Если Вы хотите задать значения индекса, то их надо указать следующим образом. Знак =>
является указателем для присваивания индекса значению или наоборот значению индекс.
$web=array(1=>"HTML",2=>"CSS",3=>"JavaScript",4=>"PHP",5=>"MySQL");
echo $web; // HTML
echo $web; // CSS
echo $web; // PHP
В примере отсчёт начинается с 1. Переменная с индексом 0 вследствие этого пустая.
В следующем примере мы не будем указывать индекс.
$day="Понедельник"; // индекс 0
$day="Вторник"; // 1
$day="Среда"; // 2
$day="Четверг"; // 3
$day="Пятница"; // 4
Можно проследить, что происходит последовательное заполнение с нуля.
АССОЦИАТИВНЫЙ МАССИВ
Зачастую возникает потребность в создании буквенного индекса для элемента массива. Как я упоминал выше, такой индекс должен состоять из латинских букв, а имя должно быть заключено в кавычки. Рассмотрим на примере человека.
$user["nick"]="Logic";
$user["name"]="Павел";
$user["age"]="25";
$user["sex"]="Мужской";
$user; // переменная $user содержит массив с 4-мя элементами с буквенными индексами
// выводим элемент массива, указывая его буквенный индекс
echo $web["name"]; // выведет "Павел"
Как видите, всё достаточно просто. Только значение индекса закавычиваем.
Двумерный массив
Если Вы пропустили первую часть с Одномерным массивом , то настоятельно советую прочитать.Если говорить проще, то это массив в массиве. То есть элементов большого массива является другой. Подобные массивы очень тормозят работу скрипта, загружая оперативную память, поэтому для быстрой обработки подобных групп данных созданы Базы Данных (Что такое База данных?), но о ней позже. Давайте разберём пример двумерного массива.
// массив с названиями Частей Света
$m = array("Европа","Азия","Африка","Америка","Австралия и Океания");
// массив с названиями Стран
$s = array("Россия","Украина","Беларусь","Казахстан");
// массив с названиями Столиц
$с = array("Москва","Киев","Минск","Астана");
// создаём двумерный массив География
$geography = array($m, $s, $с);
?>
Во включенных массивах, как Вы обратили внимание, может быть разное количество элементов. Из части про одномерные массивы следовало, что у каждого элемента массива может быть индекс. Так давайте для каждого включённого массива присвоим своё значение.
Для этого расширим последнюю строчку и напишем её следующим образом.
$geography = array("Части Света"=>$m, "Страны"=>$s, "Столицы"=>$с);
Функции работы с массивами php
Foreach - циклическая функция для работы с массивами, в которой количество циклов равно количеству элементов массива.Имеет следующий вид. Код PHP
Foreach (массив as $ключ=>$значение)
команды;
Ну и сразу пример работы
// создаём массив со знаменитыми IT
$names["Ритчи"] = "Деннис";
$names["Томпсон"] = "Кен";
$names["Гейтс"] = "Билл";
$names["Джобс"] = "Стив";
Foreach ($names as $key => $value) {
echo "$value $key";
}
?>
На экран скрипт выведет
Деннис Ритчи
Кен Томпсон
Билл Гейтс
Стив Джобс
Count
- функция, возвращающая количество элементов в массиве.
Echo count($names); // в нашем примере с IT вернёт значение 4
Sort
- функция, сортирующая элементы массива. Удобна в случае числовых значений индекса.
Arsort
- функция, сортирующая элементы массива в обратном порядке.
Sort($names); // сортирует по порядку. Удобно если в Индексе числа
arsort($names); // сортировать в обратном порядке. То есть по индексам элементы будут в порядке 3, 2, 1, 0
Unset
- функция, удаляющая элемент массива.
Unset($massiv); // удаление элемента массива с индексом 2
unset($massiv); // удаление массива целиком
Array_search
- функция поиска в массиве. Имеет два аргумента. Проще говоря, имеет вил array_search("что", где)
$animals="dog";
$animals="cat";
$animals="bird";
echo array_search("cat",$animals); // выведет индекс элемента - цифру 2
Shuffle
- функция, которая перемешивает ключи значений массива.
Shuffle($animals); // выстроит элементы в случайном порядке
Спасибо за внимание!