Читайте также:
|
|
The array type in PHP is very versatile. Here are some examples: Тип массив в PHP является очень гибким, вот несколько примеров:
<?php
// это
$a = array('color' => 'red',
'taste' => 'sweet',
'shape' => 'round',
'name' => 'apple',
4 // ключом будет 0
);
$b = array('a', 'b', 'c');
//...полностью соответствует
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name'] = 'apple';
$a[] = 4; // ключом будет 0
$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// после выполнения этого кода, $a будет массивом
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), а $b будет
// array(0 => 'a', 1 => 'b', 2 => 'c'), или просто array('a', 'b', 'c').
?>
Пример #1 Использование array()
<?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();
?>
Пример #2 Коллекция
<?php
$colors = array('red', 'blue', 'green', 'yellow');
foreach ($colors as $color) {
echo "Вам нравится $color?\n";
}
?>
Результат выполнения данного примера:
Вам нравится red?Вам нравится blue?Вам нравится green?Вам нравится yellow?Изменение значений массива напрямую стало возможным с версии PHP 5 путем передачи их по ссылке. До этого необходим следующий обходной прием:
Пример #3 Изменение элемента в цикле
<?php
// PHP 5
foreach ($colors as &$color) {
$color = strtoupper($color);
}
unset($color); /* это нужно для того, чтобы последующие записи в
$color не меняли последний элемент массива */
// Обходной прием для старых версий
foreach ($colors as $key => $color) {
$colors[$key] = strtoupper($color);
}
print_r($colors);
?>
Результат выполнения данного примера:
Array([0] => RED [1] => BLUE [2] => GREEN [3] => YELLOW)Следующий пример создает массив, начинающийся с единицы.
Пример #4 Индекс, начинающийся с единицы
<?php
$firstquarter = array(1 => 'Январь', 'Февраль', 'Март');
print_r($firstquarter);
?>
Результат выполнения данного примера:
Array ([1] => 'Январь' [2] => 'Февраль' [3] => 'Март')Пример #5 Заполнение массива
<?php
// заполняем массив всеми элементами из директории
$handle = opendir('.');
while (false!== ($file = readdir($handle))) {
$files[] = $file;
}
closedir($handle);
?>
Массивы упорядочены. Вы можете изменять порядок элементов, используя различные функции сортировки. Для дополнительной информации смотрите раздел функции для работы с массивами. Вы можете подсчитать количество элементов в массиве с помощью функции count().
Пример #6 Сортировка массива
<?php
sort($files);
print_r($files);
?>
Поскольку значение массива может быть чем угодно, им также может быть другой массив. Таким образом вы можете создавать рекурсивные и многомерные массивы.
Пример #7 Рекурсивные и многомерные массивы
<?php
$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["apple"]["green"] = "good";
?>
Обратите внимание, что при присваивании массива всегда происходит копирование значения. Чтобы скопировать массив по ссылке, вам нужно использовать оператор ссылки.
<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 изменился,
// $arr1 все еще array(2, 3)
$arr3 = &$arr1;
$arr3[] = 4; // теперь $arr1 и $arr3 одинаковы
?>
Дата добавления: 2015-08-18; просмотров: 74 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Что можно и нельзя делать с массивами | | | Особенности пользовательских функций PHP |