Преобразование в массив (тип array)
Для любого из типов: integer, float, string, boolean и resource,
если вы преобразуете значение в массив, вы получите массив с одним
элементом (с индексом 0), являющимся скалярным значением, с которого вы
начали.
Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов.
Если вы преобразуете в массив значение NULL, вы получите пустой массив.
Сравнение массивов
Массивы можно сравнивать при помощи функции array_diff() и операторов массивов:
Операторы, работающие с массивами:
Пример | Название | Результат | $a + $b | Объединение | Объединение массива $a и массива $b. | $a == $b | Равно | TRUEв случае, если $a и $b содержат одни и те же элементы. | $a === $b | Тождественно равно | TRUE в случае, если $a и $b содержат одни и те же элементы в том же самом порядке. | $a != $b | Не равно | TRUE если массив $a не равен массиву $b. | $a <> $b | Не равно | TRUE если массив $a не равен массиву $b. | $a !== $b | Тождественно не равно | TRUE если массив $a не равен тождественно массиву $b. |
Пример сравнения массивов:
$a = array("apple", "banana"); $b = array(1 => "banana", "0" => "apple"); var_dump($a == $b); // bool(true) var_dump($a === $b); // bool(false) ?>
Некоторы полезные практические примеры по работе с массивами
// это $a = array( 'color' => 'red', 'taste' => 'sweet', 'shape' => 'round', 'name' => 'apple', 4 // ключом будет 0 ); // полностью соответствует $a['color'] = 'red'; $a['taste'] = 'sweet'; $a['shape'] = 'round'; $a['name'] = 'apple'; $a[] = 4; // ключом будет 0 $b[] = 'a'; $b[] = 'b'; $b[] = 'c'; // создаст массив array(0 => 'a' , 1 => 'b' , 2 => 'c'), // или просто array('a', 'b', 'c') ?>
Еще один практический пример:
<?php // Массив как карта (свойств) $map = array( 'version' => 4, 'OS' => 'Linux', 'lang' => 'english', 'short_tags' => true );
// исключительно числовые ключи $array = array( 7, 8, 0, 156, -10 ); // это то же самое, что и array(0 => 7, 1 => 8, ...) $switching = array( 10, // ключ = 0 5 => 6, 3 => 7, 'a' => 4, 11, // ключ = 6 (максимальным числовым индексом был 5) '8' => 2, // ключ = 8 (число!) '02' => 77, // ключ = '02' 0 => 12 // значение 10 будет перезаписано на 12 );
// пустой массив $empty = array(); ?>
Коллекция:
<?php $colors = array('красный', 'синий', 'зеленый', 'желтый'); foreach ($colors as $color) { echo "Вам нравится $color?
"; } ?>
Результат работы рассмотренного скрипта:
Вам нравится красный? Вам нравится синий? Вам нравится зеленый? Вам нравится желтый?
Следующий пример создает начинающийся с единицы массив:
$firstquarter = array(1 => 'Январь', 'Февраль', 'Март'); print_r($firstquarter); ?>
Результат работы приведенного скрипта будет следующий:
Array ( [1] => 'Январь' [2] => 'Февраль' [3] => 'Март' )
|
Пример заполнения массива:
// заполняет массив всеми элементами директории $handle = opendir('.'); while (false !== ($file = readdir($handle))) { $files[] = $file; } closedir($handle); ?>
Массивы упорядочены. Вы можете изменять порядок элементов, используя
различные функции сортировки. Для дополнительной информации смотрите
раздел функции для работы с массивами. Вы можете подсчитать количество элементов в массиве, используя функцию count().
Рекурсивные и многомерные массивы:
$fruits = array ( "фрукты" => array ( "a" => "апельсин", "b" => "банан", "c" => "яблоко" ), "числа" => array ( 1, 2, 3, 4, 5, 6 ), "дырки" => array ( "первая", 5 => "вторая", "третья" ) ); // Несколько примеров доступа к значениям предыдущего массива echo $fruits["дырки"][5]; // напечатает "вторая" echo $fruits["фрукты"]["a"]; // напечатает "апельсин" unset($fruits["дырки"][0]); // удалит "первая" // Создаст новый многомерный массив $juices["яблоко"]["зеленое"] = "хорошее"; ?>
Обратите внимание, что при присваивании массива всегда происходит
копирование значения. Чтобы копировать массив по ссылке, вам нужно
использовать оператор ссылки:
<?php $arr1 = array(2, 3); $arr2 = $arr1; $arr2[] = 4; // $arr2 изменился, // $arr1 по прежнему array(2,3)
$arr3 = &$arr1; $arr3[] = 4; // теперь $arr1 и $arr3 эквивалентны ?>
Источник: http://www.srubil.ru |