array_change_key_case ($a, CASE_LOWER)
Повертає копію масиву $a, всі ключі якого перетворено в нижній (CASE_LOWER) або верхній (CASE_UPPER) регістр, а числові ключі не змінено. Якщо $a не є масивом, повертає false і породжує помилку рівня E_WARNING. Наприклад, код
<?php $a = array ( "FirSt" => 1, "SecOnd" => 2); print_r (array_change_key_case ($a, CASE_UPPER)); ?>
спричиняє таке виведення:
Array ( [FIRST] => 1 [SECOND] => 2 )
array_chunk ($a, $l, $preserve_keys)
Повертає масив — результат розбиття масиву $a на кілька масивів довжини $l. Останній з отриманих масивів може містити меншу кількість значень, ніж $l. При справдженні preserve_keys (значення true) ключі масиву $a буде збережено. Як усталено цей параметр хибний, що призволить до переіндексування кожної частини числовими ключами. При $l<1 буде породжено помилку рівня E_WARNING і повернуто null. Наприклад, код
<?php $a = array ( 'a', 'b', 'c'); print_r (array_chunk ($a, 2)); print_r (array_chunk ($a, 2, true)); ?>
спричиняє таке виведення:
Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c ) ) Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [2] => c ) )
array_column ($a, $column_key, $index_key)
Повертає масив зі значень стовпчика масиву $a з ключем column_key. Можна вказати $index_key, щоб індексувати повернутий масив значеннями зі стовпчика з ключем index_key вхідного масиву $a.
Має такі параметри:
$a — багатовимірний масив або масив об'єктів, з якого буде здійснено вибірку значень. Для вибірки закритих або захищених властивостей об'єкт повинен реалізовувати методи __get і __isset.
index_key — ключ стовпчика, значення якого буде використано як ключі повернутого асоціативного масиву. Може бути як цілочисельним, так і рядком..
Повертає масив зі значень стовпчика масиву $a з ключем column_key. Можна вказати $index_key, щоб індексувати повертається масив значеннями з шпальти з ключем index_key вхідного масиву.
Приклади
<?php $a = array(array('Id'=>2135, 'First_name'=>'Тарас', 'Last_name'=>'Трясило'), array('Id'=>3245, 'First_name'=>'Оксана', 'Last_name'=>'Швець'), array('Id'=>5342, 'First_name'=>'Остап', 'Last_name'=>'Ковальчук'), array('Id'=>5623, 'First_name'=>'Христина','Last_name'=>'Римар')); $b = array_column ($a, 'First_name'); print_r ($b); ?>Виведення:
Array ( [0] => Тарас [1] => Оксана [2] => Остап [3] => Христина )
<?php $a = array(array('Id'=>2135, 'First_name'=>'Тарас', 'Last_name'=>'Трясило'), array('Id'=>3245, 'First_name'=>'Оксана', 'Last_name'=>'Швець'), array('Id'=>5342, 'First_name'=>'Остап', 'Last_name'=>'Ковальчук'), array('Id'=>5623, 'First_name'=>'Христина','Last_name'=>'Римар')); $b = array_column ($a, 'Last_name', 'Id'); print_r ($b); ?>Виведення:
Array ( [2135] => Трясило [3245] => Швець [5342] => Ковальчук [5623] => Римар )
<?php class Writer { public $name; public function __construct (string $name) { $this-> last_name = $name; } } $a = [ new Writer('Франко'), new Writer('Шевченко'), new Writer('Руданський') ]; print_r (array_column ($a, 'last_name')); ?>Виведення:
Array ( [0] => Франко [1] => Шевченко [2] => Руданський )
<?php class Person { private $name; public function __construct (string $name) { $this-> name = $name; } public function __get ($prop) { return $this -> $prop;} public function __isset ($prop): bool { return isset ($this -> $prop); } } $people = [ new Person ('Наливайко'), new Person ('Сагайдачний'), new Person ('Хмельницький'), new Person ('Виговський'), ]; print_r (array_column ($people, 'name')); ?>Виведення:
Array ( [0] => Наливайко [1] => Сагайдачний [2] => Хмельницький [3] => Виговський )
array_combine($keys, $values)
Повертає асоціативний масив, утворений злиттям масиву ключів $keys і масиву значень $values. Якщо кількості елементів у масивах не збігаються, повертає false і породжує помилку рівня E_WARNING. Наприклад, код
<?php $a = array ('капуста', 'диня', 'слива'); $b = array ('зелена', 'жовта', 'фіолетова'); $c = array_combine($a,$b); print_r ($c); ?>
спричиняє таке виведення:
Array ( [капуста] => зелена [диня] => жовта [слива] => фіолетова )
array_count_values ($a)
Повертає асоціативний масив, ключами якого є значення масиву $a, а значеннями — кількість повторень значень $a. Породжує помилку рівня E_WARNING для кожного елемента, який не є рядком або цілим числом. Наприклад, код
<?php $a = array(1,2,3,1,2,1,"a","b","c","b","c","c"); print_r (array_count_values($a)); ?>
спричиняє таке виведення:
Array ( [1] => 3 [2] => 2 [3] => 1 [a] => 1 [b] => 2 [c] => 3 )
array_diff_assoc($a, $b, …, $c)
Повертає масив, що містять всі значення з масиву $a, яких немає в будь-якому з наступних масивів-параметрів.
Приклади
<?php $a = array("a" => "А", "b" => "Б", "c" => "В", "d"); $b = array("a" => "А", "123", "d"); $c = array_diff_assoc ($a, $b); print_r($c); ?>Виведення:
Array ( [b] => Б [c] => В [0] => d )
Пару 0 => "d" виведено, бо у $b$ значенню "d" відповідає ключ 1.
Код:<?php
$a = array (0, 1, 2);
$b = array ("00", "01", "2");
$c = array_diff_assoc ($a, $b);
print_r ($c);
?>
Виведення:
Array
(
[0] => 0
[1] => 1
)
array_diff_key ($a, $b, …, $c)
Повертає масив, що містить всі елементи $a з ключами, яких немає в будь-якому з наступних масивів-параметрів. Наприклад, код
<?php $a = array('R' => 1, 'G' => 2, 'B' => 3, 'W' => 4); $b = array('G' => 5, 'Y' => 6); $c = array('O' => 7, 'B' => 8); print_r (array_diff_key ($a, $b, $c)); ?>спричиняє таке виведення:
Array ( [R] => 1 [W] => 4 )
array_diff_uassoc ($a, $b, …, $c, "f")
Повертає розбіжність масивів з перевіркою індексів за допомогою користувацької функції f. Функція порівняння повертає ціле, яке від'мне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Наприклад, код
<?php function f ($a, $b) { if ($a != $b) return 0; else return 1; } $a = array ( "g" => "green", "b" => "blue", "rose", "red"); $b = array ( "g" => "green", "b" => "bad", "red"); $c = array_diff_uassoc ($a, $b, "f"); print_r ($c); ?>спричиняє таке виведення:
Array ( [g] => green [b] => blue [0] => rose )
array_diff_ukey ($a, $b, …, $c, "f")
Повертає розбіжність масивів з перевіркою ключів за допомогою користувацької функції f, що повертає ціле, яке від'мне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Наприклад, код
<?php function f ($k1, $k2) { if ($k1 == $k2) return 0; else if ($k1 > $k2) return 1; else return -1; } $a = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $b = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); print_r (array_diff_ukey($a, $b, 'f')); ?>спричиняє таке виведення:
Array ( [red] => 2 [purple] => 4 )
array_diff ($a, $b, …, $c)
Повертає масив, що містить всі елементи $a з ключами, яких немає в будь-якому з наступних масивів-параметрів.
Приклади
<?php $a = array ( "a" => "green", "red", "blue", "red"); $b = array ( "b" => "green", "yellow", "red"); $c = array_diff ($a, $b); print_r ($c); ?>Виведення:
Array ( [1] => blue )
Код:<?php
$a = [1, 2, 3, 4,[5]];
$b = [3, 4, 6];
$c = array_diff($a, $b); // Це породить повідомлення про те,
// що масив не можна перетворити в рядок.
print_r($c);
?>
Виведення:
PHP Notice: Array to string conversion in 884643383/source.php on line 4
Array
(
[0] => 1
[1] => 2
[4] => Array
(
[0] => 5
)
)
array_fill_keys ($keys, $value)
Повертає асоціативний масив пар зі значенням $value і масивом ключів $keys. Наприклад, код
<?php $k = array( 'a', 'b', 'c'); $a = array_fill_keys ($k, 'літера'); print_r ($a); ?>спричиняє таке виведення:
Array ( [a] => літера [b] => літера [c] => літера )
array_fill ($i0, $n, $v)
Повертає масив з $n елементів зі значенням $v з індексами, починаючи з i0. При від'ємному $n викликає попередження E_WARNING. При від'ємному i0, першим індексом повернутого масиву буде i0, а наступний 0 і далі у порядку зростання. Наприклад, код
<?php print_r (array_fill( 3,3,'a')); print_r (array_fill(-3,3,'b')); ?>спричиняє таке виведення:
Array ( [3] => a [4] => a [5] => a ) Array ( [-3] => b [0] => b [1] => b )
array_filter ($a, 'f', $mode)
Перебирає всі значення масиву $a, передаючи їх як аргумент у функцію f. При повененні значення true аргумент буде долучено до вихідного масиву. Ключі масиву зберігаються. Це може призвести до пропусків, якщо $a було проіндексовано. Результат можна переіндексувати за допомогою функції array_values (див. далі). Якщо функцію не передано, все порожні й нульові значення масиву $a буде видалено. Прапор $mode визначає, які аргументи передавати в f:
Як усталено буде передано лише значення як аргумент.
Приклади
<?php function odd ($x) { return $x & 1; } // чи є число x непарним? function even ($x) { return !($x & 1);} // чи є число x парним? $a = [ 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]; $b = [6, 7, 8, 9]; echo "Непарні:\n "; print_r (array_filter ($a, "odd")); echo "Парні:\n "; print_r (array_filter ($a, "even")); echo "Парні:\n"; print_r (array_filter ($b, "even")); echo "Непарні:\n"; print_r (array_filter ($b, "odd")); ?>Виведення:
Непарні: Array ( [a] => 1 [c] => 3 [e] => 5 ) Парні: Array ( [b] => 2 [d] => 4 ) Парні: Array ( [0] => 6 [2] => 8 ) Непарні: Array ( [1] => 7 [3] => 9 )
Код:<?php
$a = [ 0=> 'A', 1=> false, 2=> -1, 3=> null, 4=> '', 5=> '0', 6=> '00', 7=> 0];
print_r (array_filter ($a));
?>
Виведення:
Array
(
[0] => A
[2] => -1
[6] => 00
)
Код:<?php
$a = [ 'a'=> 1, 'b'=> 2, 'c'=> 3, 'd'=> 4];
print_r(array_filter($a,function($k) {return $k=='b';}, ARRAY_FILTER_USE_KEY));
print_r(array_filter($a,function($v,$k){return $k=='b'||$v==4;},ARRAY_FILTER_USE_BOTH));
?>
Виведення:
Array
(
[b] => 2
)
Array
(
[b] => 2
[d] => 4
)
array_flip ($a)
Повертає масив — результат заміни ключів на значення і навпаки у масиві $a, null у разі помилки. Значення масиву $a мають бути коректними ключами, тобто мати int або string. Якщо значення має хибний тип, буде видано попередження і дану пара ключ / значення не буде переміщено в результаті. Якщо значення зустрічається кілька разів, для опрацювання буде використано останню пару, а решту з таким самим значенням буде втрачено.
Приклади
<?php $a = array("вишня", "груша", "слива"); $b = array_flip ($a); print_r ($b); ?>Виведення:
Array ( [вишня] => 0 [груша] => 1 [слива] => 2 )
Код:<?php
$a = array ( "a" => 1, "b" => 1, "c" => 2);
$b = array_flip ($a);
print_r ($b);
?>
Виведення:
Array
(
[1] => b
[2] => c
)
array_intersect_assoc ($a, $b, …, $c)
Повертає масив, що містить спільні елементи всіх масивів-аргументів. При порівнянні використовують ключі (на відміну від функції array_intersect). Наприклад, код
<?php $a = array ("a" => "1", "b" => "2", "c" => "3", "4"); $b = array ("a" => "1", "b" => "-2", "3", "4"); print_r ($a); print_r ($b); print_r (array_intersect_assoc($a, $b)); ?>спричиняє таке виведення:
Array ( [a] => 1 [b] => 2 [c] => 3 [0] => 4 ) Array ( [a] => 1 [b] => -2 [0] => 3 [1] => 4 ) Array ( [a] => 1 )
array_intersect_key ($a, $b, …, $c)
Повертає масив, що містить всі елементи $a з тими ключами, що є в усіх наступних параметрах. Наприклад, код
<?php $a = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4); $b = array('c' => 5, 'a' => 6, 'e' => 7, 'f' => 8); print_r(array_intersect_key ($a, $b)); ?>спричиняє таке виведення:
Array ( [a] => 1 [c] => 3 )
array_intersect_uassoc ($a, $b, …, $c, 'f')
Повертає масив, що містить значення $a, наявні в усіх наступних параметрах. Для порівняння за допомогою функції f використовують ключі. Функція порівняння f має повертати ціле, яке від'ємне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Наприклад, код
<?php $a = array("a" => "a", "b" => "b", "c" => "c", "e"); $b = array("a" => "A", "B" => "b", "d", "e"); print_r ($a); print_r ($b); print_r (array_intersect_uassoc ($a, $b, "strcasecmp")); ?>
(використано вбудовану функцію порівняння рядків strcasecmp без врахування регістру) спричиняє таке виведення:
Array ( [a] => a [b] => b [c] => c [0] => e ) Array ( [a] => A [B] => b [0] => d [1] => e ) Array ( [b] => b )
array_intersect_ukey ($a, $b, …, $c, 'f')
Повертає масив тих значення $a, чиї ключі є у всіх наступних аргументах-масивах. Функція порівняння f повинна повертати ціле, яке від'ємне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Наприклад, код
<?php function f ($k1, $k2) { if ($k1 == $k2) return 0; else if ($k1 > $k2) return 1; else return -1; } $a = array ('a'=> 1, 'b'=> 2, 'c'=> 3, 'd'=> 4); $b = array ('c'=> 5, 'a'=> 6, 'e'=> 7, 'f'=> 8); print_r (array_intersect_ukey ($a, $b, 'f')); ?>
спричиняє таке виведення:
Array ( [a] => 1 [c] => 3 )
array_intersect ($a, $b, …, $c)
Повертає масив тих значення $a, чиї ключі є у всіх наступних аргументах-масивах. Наприклад, код
<?php $a = array("a" => "g", "c", "d"); $b = array("b" => "g", "e", "c"); print_r(array_intersect($a, $b)); ?>
спричиняє таке виведення:
Array ( [a] => g [0] => c )
array_key_exists ($key, $a)
Повертає true тоді й лише тоді, коли масив $a містить ключ $key (ціле або рядок).
Приклади
<?php $a = array ('ключ1' => 1, 'ключ2' => 4); if (array_key_exists ( 'ключ1', $a)) { echo "Масив містить ключ1.\n";} if (array_key_exists ( 'ключ3', $a)) { echo "Масив містить ключ3.";} else { echo "Масив не містить ключ3.";} ?>Виведення:
Масив містить ключ1. Масив не містить ключ3.
Код:<?php
$a = array ('ключ1' => null, 'ключ2' => 4);
if (isset ($a['ключ1'])) echo 'isset\n';
if (array_key_exists('ключ1', $a)) echo 'array_key_exists';
?>
Виведення:
array_key_exists
Примітка.
isset не повертає true для ключів масиву, що вказують на null, а array_key_exists повертає.
З причин забезпечення сумісності, array_key_exists повертає true, якщо $key є властивістю об'єкта, переданим в якості параметра $a. На це не варто покладатися, і завжди перед використанням цієї функції необхідно перевіряти, що параметр $a має тип array.
array_key_first ($a)
Повертає перший ключ масиву $a$. Наприклад, код
<?php echo array_key_first (['a'=> 1, 'b'=> 2, 'c'=> 3]); ?>
виводить a
array_key_last ($a)
Повертає останній ключ масиву $a$. Наприклад, код
<?php echo array_key_last (['a'=> 1, 'b'=> 2, 'c'=> 3]); ?>
виводить c
array_keys ($a)
array_keys ($a, $v, $strict)
Повертає масив ключів масиву $a. Якщо вказано параметр $v, функція повертає ключі, у яких значення елементів масиву збігаються з цим параметром. Інакше функція повертає всі ключі масиву. Булевий параметр $strict визначає використання рівності === при пошуку. Наприклад, код
<?php print_r (array_keys ([0 => 1, "c" => "d"])); print_r (array_keys (["b", "r", "g", "b", "b"], "b")); print_r (array_keys (["колір" => ["блакитний","червоний","зелений"], "розмір" => ["малий", "середній", "великий"]])); ?>
спричиняє таке виведення:
Array ( [0] => 0 [1] => c ) Array ( [0] => 0 [1] => 3 [2] => 4 ) Array ( [0] => колір [1] => розмір )
array_map ('f', $a, $b, …, $c)
Повертає масив, що містить результати застосування функції до значень аргументів-масивів. Кількість аргументів функції f має збігатися з кількістю аргументів-масивів функції array_map. Для одного масиву-аргумента буде збережено ключі, інакше (більше одного масиву-аргумента) повернутий масив матиме послідовні цілочисельні ключі. Зазвичай при опрацюванні двох або більше масивів вони мають однакову довжину. Якщо масиви мають різну довжину, коротші з них буде доповнено елементами з порожніми значеннями до довжини найдовшого масиву. Цікавим ефектом при використанні цієї функції є можливість створення масиву масивів при використання значення null як назви функції.
Приклади
<?php function cube ($n) { return $n*$n*$n;} print_r (array_map ('cube', [0, 1, 2, 3, 4])); ?>Виведення:
Array ( [0] => 0 [1] => 1 [2] => 8 [3] => 27 [4] => 64 )
Код:<?php
$f = function ($x) { return $x*2;};
print_r (array_map ($f, range(1, 5)));
?>
Виведення:
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)
Код:<?php
function read_u ($n, $m) {return "Цифру {$n} українською мовою читають {$m}";}
function map_u ($n, $m) {return [$n => $m];}
$a = [1, 2, 3, 4];
$b = ['один', 'два', 'три', 'чотири'];
print_r (array_map ('read_u', $a, $b));
print_r (array_map ( 'map_u', $a, $b));
?>
Виведення:
Array
(
[0] => Цифру 1 українською мовою читають один
[1] => Цифру 2 українською мовою читають два
[2] => Цифру 3 українською мовою читають три
[3] => Цифру 4 українською мовою читають чотири
)
Array
(
[0] => Array
(
[1] => один
)
[1] => Array
(
[2] => два
)
[2] => Array
(
[3] => три
)
[3] => Array
(
[4] => чотири
)
)
Код:<?php
$a = [1, 2, 3, 4];
$b = [ 'one', 'two', 'three', 'four'];
$c = [ 'eins','zwei', 'drei', 'vier'];
print_r (array_map (null, $a, $b, $c));
?>
Виведення:
Array
(
[0] => Array
(
[0] => 1
[1] => one
[2] => eins
)
[1] => Array
(
[0] => 2
[1] => two
[2] => zwei
)
[2] => Array
(
[0] => 3
[1] => three
[2] => drei
)
[3] => Array
(
[0] => 4
[1] => four
[2] => vier
)
)
Код:<?php
$a = [1, 2, 3];
print_r (array_map (null, $a));
?>
Виведення:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Код:<?php
$a = ['key' => 'value'];
function f1 ($a) { return [$a];}
function f2 ($a, $b) { return [$a, $b];}
print_r (array_map ('f1', $a));
print_r (array_map ('f2', $a, $a));
print_r (array_map (null, $a));
print_r (array_map (null, $a, $a));
?>
Виведення:
Array
(
[key] => Array
(
[0] => value
)
)
Array
(
[0] => Array
(
[0] => value
[1] => value
)
)
Array
(
[key] => value
)
Array
(
[0] => Array
(
[0] => value
[1] => value
)
)
array_merge_recursive( $a, $b, …, $c)
Повертає результат злиття елементів двох чи більше масивів таким чином, що значення одного масиву приєднують у кінець іншого. Якщо вхідні масиви мають однакові ключі-рядки, то значення цих ключів зливаються у масив. І це робиться рекурсивно: якщо одне зі значень є масивом, то функція зливає його з відповідним значенням в іншому масиві. Але якщо масиви мають однакові числові ключі, кожне наступне значення не замінить початкове значення, а буде додано в кінець масиву. Наприклад, код
<?php $a = array ( "колір" => array ( "улюблений" => "зелений"), 'a'); $b = array ('b', "колір" => array ( "улюблений" => "блакитний", "червоний")); $c = array_merge_recursive ($a, $b); print_r ($c); ?>
спричиняє таке виведення:
Array ( [колір] => Array ( [улюблений] => Array ( [0] => зелений [1] => блакитний ) [0] => червоний ) [0] => a [1] => b )
array_merge ($a, $b, …, $c)
Повертає результат злиття елементів двох чи більше масивів таким чином, що значення одного масиву приєднують у кінець іншого. Якщо вхідні масиви мають однакові рядкові ключі, тоді кожне наступне значення буде замінювати попереднє. Однак, якщо масиви мають однакові числові ключі, значення, згадане останнім, не замінить початкове значення, а буде додано в кінець масиву. У вихідному масиві значення вихідного масиву з числовими ключами буде пронумеровано у порядку зростання, починаючи з нуля.
Приклади
<?php $a = array("a" => "b", "c", 3); $b = array( "a", "b", "a" => "d", "e" => "f", 3); print_r(array_merge ($a, $b)); ?>Виведення:
Array ( [a] => d [0] => c [1] => 3 [2] => a [3] => b [e] => f [4] => 3 )
Код:<?php
print_r(array_merge ([], [1 => "data"]));
?>
Виведення:
Array
(
[0] => data
)
Примітка. Для доповнення масиву елементами інших без перенумерації числових ключів використовують оператор об'єднання масивів +. Наприклад, код<?php
print_r([]+[1 => "data"]);
?>
спричиняє таке виведення:
Array ( [1] => data )
Код:<?php
$a = 'a';
$b = array (1 => 'bar');
print_r (array_merge ((array) $a, $b));
?>
Виведення:
Array
(
[0] => a
[1] => bar
)
array_multisort ($a, $order, $flags, $rest)
Упорядковує кілька масивів або один багатовимірний масив $a. Рядкові ключі буде збережено, але числові ключі буде змінено. Якщо обидва порівнюваних значення еквівалентні, то порядок їх в упорядкованому масиві не визначено. Повертає true у випадку успішного завершення або false у разі виникнення помилки.
$a — упорядковуваний масив.
Цей аргумент можна міняти місцями з sort_flags або взагалі не вказувати. У цьому випадку SORT_ASC — значення як усталено.
flags — налаштування упорядкування:
SORT_REGULAR — звичайне порівняння елементів (без зміни типів);
SORT_NUMERIC — порівняння елементів як чисел;
SORT_STRING — порівняння елементів як рядків;
SORT_LOCALE_STRING — порівняння елементів як рядків з огляду на поточну локаль, яку можна змінити за допомогою функції setlocale;
SORT_NATURAL — порівняння елементів як рядків з використанням алгоритму природного порядку (natural order), як у функції natsort;
SORT_FLAG_CASE — може бути об'єднаний з SORT_STRING або SORT_NATURAL для сортування без урахування регістру.
Цей аргумент можна міняти місцями з sort_order або взагалі не вказувати. У цьому випадку SORT_REGULAR — значення як усталено.
$rest — додаткові масиви, необов'язково записані після способу і налаштувань упорядкування. Порівнюються лише елементи відповідні таким самим елементам у попередніх масивах. Інакше кажучи, проводиться упорядкування в лексикографічному порядку.
<?php $a = array(20,40,30,10); $b = array( 1, 2, 3, 4); array_multisort($a, $b); print_r($a); print_r($b); ?>Виведення:
Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 ) Array ( [0] => 4 [1] => 1 [2] => 3 [3] => 2 )
Код:<?php
$a = array(array("b", 2, 11, 3, 111,"a"),
array( 1, 2, 3, 4, 5, 6));
array_multisort ($a[0], SORT_ASC, SORT_STRING, $a[1]);
print_r ($a);
?>
Виведення:
Array
(
[0] => Array
(
[0] => 11
[1] => 111
[2] => 2
[3] => 3
[4] => a
[5] => b
)
[1] => Array
(
[0] => 3
[1] => 5
[2] => 2
[3] => 4
[4] => 6
[5] => 1
)
)
Розглянемо приклад опрацювання даних (v — том, No — номер наукового видання), отриманих, наприклад, з бази даних за допомогою методу mysqli_fetch_assoc.
v | No ---+--- 67 | 2 86 | 1 85 | 6 98 | 2 86 | 6 67 | 7Код:
<?php $d = array(['v' => 67, 'No' => 2], ['v' => 86, 'No' => 1], ['v' => 85, 'No' => 6], ['v' => 98, 'No' => 2], ['v' => 86, 'No' => 6], ['v' => 67, 'No' => 7]); // отримання окремих масивів: $v - том // $No - номер наукового видання // одним з двох способів: foreach ($d as $key => $row) { $v [$key] = $row['v']; $No[$key] = $row['No']; } //$v = array_column ($d, 'v'); //$No = array_column ($d, 'No'); array_multisort ($v, SORT_DESC, $No, SORT_ASC, $d); print_r($v); print_r($No); print_r($d); ?>призведе до такого впорядкування даних
v | No -- + -- 98 | 2 86 | 1 86 | 6 85 | 6 67 | 2 67 | 7Виведення:
Array ( [0] => 98 [1] => 86 [2] => 86 [3] => 85 [4] => 67 [5] => 67 ) Array ( [0] => 2 [1] => 1 [2] => 6 [3] => 6 [4] => 2 [5] => 7 ) Array ( [0] => Array ( [v] => 98 [No] => 2 ) [1] => Array ( [v] => 86 [No] => 1 ) [2] => Array ( [v] => 86 [No] => 6 ) [3] => Array ( [v] => 85 [No] => 6 ) [4] => Array ( [v] => 67 [No] => 2 ) [5] => Array ( [v] => 67 [No] => 7 ) )
Сталі SORT_STRING і SORT_REGULAR враховують регістр: рядки, що починаються з довільної великої літери, будуть виставлені перед рядками, що починаються з довільної малої літери. Для виконання регістро незалежного упорядкування необхідно використовувати копію вхідного масиву, зведену до нижнього або до верхнього регістру. Для слів, що містять лише літери латиниці, для цього можна використати функцію strtolower (як це зроблено у поданому нижче прикладі) або strtoupper. Для кирилиці чи іншої абетки потрібно створити власну функцію.
Код:<?php
$a = array ("Bee","bear","Tree","table");
$b = array_map ('strtolower', $a);
array_multisort ($b, SORT_ASC, SORT_STRING, $a);
print_r ($a);
?>
Виведення:
Array
(
[0] => bear
[1] => Bee
[2] => table
[3] => Tree
)
array_pad ($a, $n, $v)
Повертає копію масиву $a, доповненого до розміру $n елементами зі значенням $v. Якщо параметр $n додатний, то масив буде доповнено у сторону зростання індексів, якщо від'ємний — у сторону спадання індексів. Якщо абсолютне значення параметра $n не перевищує початковий розмір $a, доповнення не буде. За один раз можна додати до 1 048 576 елементів. Наприклад, код
<?php $a = array (1, 2, 3); print_r (array_pad($a, 5, 4)); print_r (array_pad($a,-6, 0)); print_r (array_pad($a, 2, 9)); ?>
спричиняє таке виведення:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 4 ) Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 1 [4] => 2 [5] => 3 ) Array ( [0] => 1 [1] => 2 [2] => 3 )
array_pop($a)
Повертає значення останнього елемента масиву $a, вилучаючи його з масиву $a. При порожньому масиві або аргумент не є масивом буде повернуто null. В останньому випадку буде породжено помилку рівня E_WARNING. Наприклад, код
<?php $a = array(0, 1, 2, 3); print_r (array_pop ($a)); echo "\n"; print_r ($a); ?>
спричиняє таке виведення:
3 Array ( [0] => 0 [1] => 1 [2] => 2 )
array_product($a)
Повертає добуток значень масиву $a. Наприклад, код
<?php echo array_product([1, 2, 3, 4, 5]); echo "\n"; echo array_product(array()); ?>
спричиняє таке виведення:
120 1
array_push ($a, $v, $u, …, $w)
Долучає до масиву $a (в кінець) значення-параметри, перелічені після $a. Повертає довжину зміненого масиву. Породжує попередження, якщо перший аргумент не є масивом. Наприклад, код
<?php $a = array (0, 1, 2); echo array_push($a, 3, 4); echo "\n"; print_r ($a); ?>
спричиняє таке виведення:
5 Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 )
array_rand ($a, $n)
Повертає один або кілька випадково вибраних ключів. У випадку кількох ключів їх буде повернуто у тому порядку, в якому вони присутні у масиві. Спроба вибрати більше елементів, ніж є у масиві породить помилку рівня E_WARNING і поверне NULL. Наприклад, код
<?php $a = array ("a"=>"b", "c"=>"b", 1, 2); $b = array_rand ($a, 2); print_r ($b); ?>
може спричинити таке виведення:
Array ( [0] => c [1] => 0 )
array_reduce ($a, "f", $i) Повертає результат послідовного застосування функції f до елементів масиву $a. $i — необов'язковий параметр — початкове значення. Звернення до функції має такий синтаксис: f($p, $t), де:
При першому застосуванні $previous містить значение параметра $i. Якщо масив порожній і не передано параметр $i, array_reduce поверне null. Наприклад, код
<?php function sum ($x, $y) { $x += $y; return $x;} function product ($x, $y) { $x *= $y; return $x;} $a = array (1, 2, 3, 4, 5); $b = array (); echo array_reduce ($a, "sum")."\n"; echo array_reduce ($a, "product", 5)."\n"; echo array_reduce ($b, "sum", "Немає даних"); ?>
спричиняє таке виведення:
15 600 Немає даних
array_replace_recursive ($a, $b, …, $c)
Повертає результат заміни значень масиву $a на відповідні за ключами значення з усіх наступних масивів:
якщо ключ з першого масиву є в другому, його значення буде замінено на значення з другого масиву;
якщо ключ є у другому масиві, але відсутній у першому, його буде створено у першому масиві;
якщо ключ є лише у першому масиві, то він залишається як є;
якщо передано кілька масивів, їх буде опрацьовано у порядку запису зліва направо: наступні перезаписують попередні значення.
Дана функція є рекурсивною: вона буде рекурсивно заглиблюватися у масиви і застосовувати до всіх внутрішніх значень один і той самий процес.
Приклади
<?php $a = array ( 'a'=> array ("b"), 'd' => array ("e", "f")); $b = array ( 'a'=> array ('c'), 'd' => array ('g')); print_r (array_replace_recursive ($a, $b)); print_r (array_replace ($a, $b)); ?>Виведення:
Array ( [a] => Array ( [0] => c ) [d] => Array ( [0] => g [1] => f ) ) Array ( [a] => Array ( [0] => c ) [d] => Array ( [0] => g ) )
Код:<?php
$a = array('цитрус'=> array("мандарин"),'ягода'=> array("чорниця","ожина"));
$b = array('цитрус'=> 'помаранч', 'ягода'=> array("чорниця"));
$c = array('цитрус'=> array('помаранч'),'ягода'=> array('лохина'));
print_r (array_replace_recursive ($a, $b, $c));
?>
Виведення:
Array
(
[цитрус] => Array
(
[0] => помаранч
)
[ягода] => Array
(
[0] => лохина
[1] => ожина
)
)
array_replace ($a, $b, …, $c)
Повертає результат заміщення значень масиву $a з такими самими ключами з інших переданих масивів:
якщо ключ з першого масиву присутній в другому масиві, його значення буде замінено на значення з другого масиву;
якщо ключ є у другому масиві, але відсутня в першому, його буде створено у першому масиві;
якщо ключ є лише у першому масиві, то його буде збережено у наявному вигляді;
якщо для заміни передано кілька масивів, їх буде опрацьовано у порядку запису зліва направо і наступні масиви будуть змінювати значення з попередніх.
Діє не рекурсивно: значення першого масиву буде замінено незалежно від типу значень другого масиву, навіть якщо це будуть вкладені масиви. У разі помилки повертає null. Наприклад, код
<?php $a = array('цитрус'=> array("мандарин"),'ягода'=> array("чорниця","ожина")); $b = array('цитрус'=> 'помаранч', 'ягода'=> array("чорниця")); $c = array('цитрус'=> array('помаранч'),'ягода'=> array('лохина')); print_r (array_replace ($a, $b, $c)); ?>
спричиняє таке виведення:
Array ( [цитрус] => Array ( [0] => помаранч ) [ягода] => Array ( [0] => лохина ) )
array_reverse ($a, $b)
Повертає результат запису масиву $a у зворотному порядку. При справдженні $b (значення true) числові ключі будуть збережені. Нечислові ключі буде завжди збережено. Наприклад, код
<?php $a = array ("a", array (1,"b"=>2,"c"), "3"); print_r($a); print_r(array_reverse($a)); print_r(array_reverse($a, true)); ?>
спричиняє таке виведення:
Array ( [0] => a [1] => Array ( [0] => 1 [b] => 2 [1] => c ) [2] => 3 ) Array ( [0] => 3 [1] => Array ( [0] => 1 [b] => 2 [1] => c ) [2] => a ) Array ( [2] => 3 [1] => Array ( [0] => 1 [b] => 2 [1] => c ) [0] => a )
array_search ($x, $a, $strict)
Повертає ключ значення $x у масиві $a, якщо він є, інакше повертає false. Якщо $x є рядком, порівняння відбувається з урахуванням регістру. Якщо параметр $strict має значення true, то буде здійснено пошук ідентичних елементів. Якщо значення $x наявне в $a більше одного разу, буде повернуто перший знайдений ключ. Для того, щоб повернути ключі для всіх знайдених значень, використовують функцію array_keys з необов'язковим параметром search_value. Може повертати як логічне значення false, так і значення не типу boolean, яке приводиться до false. Використовуйте оператор === для перевірки значення, повернутого функцією. Наприклад, код
<?php $a = array ('x'=> 'y', 'y' => 'x', 'x', '1', 1); echo array_search ('x', $a)."\n"; echo array_search ('y', $a)."\n"; echo array_search (1, $a)."\n"; echo array_search (1, $a, true)."\n"; ?>
спричиняє таке виведення:
y x 1 2
array_shift ($a)
Вилучає перше значення з масиву $a і повертає це вилучене значення. Якщо $a є порожнім масивом або не є масивом, буде повернуто null. Всі числові ключі будуть змінено таким чином, що нумерація масиву почнеться з нуля, а рядкові ключі залишаться без змін. Наприклад, код
<?php $a = array ("a", "b"=>"c", "d"); print_r ($a); echo "\n".array_shift($a)."\n"; print_r ($a); ?>
спричиняє таке виведення:
Array ( [0] => a [b] => c [1] => d ) a Array ( [b] => c [0] => d )
array_slice ($a, $i0, $n, $keys)
Повертає масив елементів масиву $a довжини $n, починаючи з положення (не ключа!) $i0:
якщо $i0 більше довжини масиву $a, буде повернуто порожній масив;
при від'ємному $i0 повернутий масив завершиться на вказаній відстані від кінця масиву;
при додатному $n повернутий масив буде містити кількість елементів, що не перевищує $n;
якщо кількість елементів масиву $a менша ніж параметр $n, то буде повернуто лише наявні елементи масиву $a;
при невказаному $n повернутий масив буде містити всі елементи $a з положення $i0 до кінця масиву $a;
як усталено, array_slice змінює числові ключі масиву, зберігаючи рядкові. При справдженні $keys (значення true) всі ключі залишаться у початковому стані.
<?php $a = array ("a","b","c"=>"d","e","f"); print_r ($a); print_r (array_slice ($a, 2)); print_r (array_slice ($a,-3, 2)); print_r (array_slice ($a,-3, 2, true)); print_r (array_slice ($a, 2,-1)); print_r (array_slice ($a, 2,-1, true)); ?>
спричиняє таке виведення:
Array ( [0] => a [1] => b [c] => d [2] => e [3] => f ) Array ( [c] => d [0] => e [1] => f ) Array ( [c] => d [0] => e ) Array ( [c] => d [2] => e ) Array ( [c] => d [0] => e ) Array ( [c] => d [2] => e )
array_splice ($a, $i0, $n, $b)
Видаляє $n елементів з масиву $a, починаючи з позиції $i0 масиву $a, і замінює їх елементами масиву $b, якщо його передано в якості параметра:
числові ключі масивів $a і $b не зберігаються;
якщо параметр $b не є масивом, його буде перетворено у масив. Це може призвести до несподіваних результатів при використанні об'єкта або null як параметр $b;
при від'ємному $i0 будуть видалені елементи, розташовані відстані $i0 від кінця $a;
якщо параметр $n не вказано, будуть видалені всі елементи, починаючи з позиції $i0 і до кінця масиву;
при зазначеному додатному $n буде видалено саме стільки елементів;
при зазначеному від'ємному $n кінець видаленої частини елементів буде відстояти на -$n позицій від кінця масиву;
при нульовому значенні $n нічого видалено не буде;
якщо параметри $i0 і $n такі, що не буде нічого видалено, тоді елементи масиву b буде вставлено на позицію $i0;
<?php $a = array ("a","b","c"=>"d","e","f"); array_splice($a, 3); print_r($a); $a = array ("a","b","c"=>"d","e","f"); array_splice($a, 2,-1); print_r($a); $a = array ("a","b","c"=>"d","e","f"); array_splice($a, 1, 9,"x"); print_r($a); $a = array ("a","b","c"=>"d","e","f"); array_splice($a,-2, 5,["x","y"]); print_r($a); ?>
спричиняє таке виведення:
Array ( [0] => a [1] => b [c] => d ) Array ( [0] => a [1] => b [2] => f ) Array ( [0] => a [1] => x ) Array ( [0] => a [1] => b [c] => d [2] => x [3] => y )
array_sum ($a)
Повертає суму цілих або дійсних значень елементів масиву $a. Наприклад, код
<?php echo array_sum([ -1, 3, "a"=> -5, 7,])."\n"; echo array_sum([1.1, -2.3, 3.5, "b"])."\n"; ?>
спричиняє таке виведення:
4 2.3
array_udiff_assoc ($a, $b, …, $c, 'f')
Повертає масив, що містить всі елементи $a, яких немає в будь-якому з решти усіх інших аргументів, використовуючи для порівняння значень функцію f. Функція f повинна повертати ціле: від'ємне, нуль або додатне, якщо перший її аргумент є відповідно меншим, рівним або більшим, ніж другий. На відміну від array_diff і array_udiff у порівнянні використовують ключі. У цьому сенсі поведінка цієї функції відрізняється від array_diff_assoc, яка використовує вбудовану функцію для порівняння. Наприклад, код<?php
function f ($a, $b)
{ if ($a != $b) return 0;
else return 1;
}
$a = array ( "g" => "green", "b" => "blue", "rose", "red");
$b = array ( "g" => "green", "b" => "bad", "red");
$c = array_udiff_assoc ($a, $b, "f");
print_r ($c);
?>
спричиняє таке виведення:
Array ( [g] => green [1] => red )
array_udiff_uassoc ($a, $b, …, $c, 'fv', 'fk')
Повертає масив, що містить всі елементи $a, яких немає в будь-якому з решти усіх інших аргументів-масивів, використовуючи для порівняння значень функцію fv, а для порівняння ключів — функцію fk. Функція порівняння має повертати ціле, яке від'ємне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Це відрізняється від поведінки array_udiff_assoc, яка порівнює індекси за допомогою вбудованої функції. Наприклад, код<?php
function fv ($a, $b)
{ if ($a == $b) return 0;
else return 1;
}
function fk ($a, $b)
{ if (strtolower($a) == strtolower($b)) return 0;
else return 1;
}
$a = array("a"=>"b","b"=>"c","c"=>"d", "rose", "red");
$b = array("a"=>"b","B"=>"c","y"=>"d", "red");
$c = array_udiff_uassoc ($a, $b, "fv", "fk");
print_r ($c);
?>
спричиняє таке виведення:
Array ( [c] => d [0] => rose [1] => red )
array_udiff ($a, $b, …, $c, 'f')
Повертає масив, що містить всі елементи $a, яких немає в будь-якому з решти усіх інших аргументів-масивів, використовуючи для порівняння значень функцію f. Функція порівняння має повертати ціле, яке від'ємне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Це відрізняється від поведінки array_diff, яка використовує вбудовану функцію для порівняння даних. Наприклад, код<?php
$a = array (new stdclass, new stdclass, new stdclass, new stdclass);
$b = array (new stdclass, new stdclass);
// задання значень властивостей об'єктів-
// прямокутників - ширини w і висоти h
$a[0]-> w =11; $a[0]-> h = 3;
$a[1]-> w = 7; $a[1]-> h = 1;
$a[2]-> w = 2; $a[2]-> h = 9;
$a[3]-> w = 5; $a[3]-> h = 7;
$b[0]-> w = 7; $b[0]-> h = 5;
$b[1]-> w = 9; $b[1]-> h = 2;
// функція порівняння площ -
// добутків властивостей w i h
function by_area ($a, $b)
{ $Sa = $a->w * $a->h;
$Sb = $b->w * $b->h;
if ($Sa < $Sb) return -1;
elseif ($Sa > $Sb) return 1;
else return 0;
}
print_r (array_udiff ($a, $b, 'by_area'));
?>
спричиняє таке виведення:
Array ( [0] => stdClass Object ( [w] => 11 [h] => 3 ) [1] => stdClass Object ( [w] => 7 [h] => 1 ) )
array_uintersect_assoc ($a, $b, …, $c, 'f')
Повертає масив, що містить всі спільні елементи масивів $a, $b, …, $c, використовуючи для порівняння значень функцію f. Функція порівняння має повертати ціле, яке від'ємне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. У порівнянні використовують ключі на відміну від array_uintersect. Наприклад, код<?php
$a = array ( "a" => "g", "b" => "b", "c" => "c", "red");
$b = array ( "a" => "G", "B" => "b", "c" => "c", "red");
print_r (array_uintersect_assoc ($a, $b, "strcasecmp"));
print_r (array_uintersect_assoc ($a, $b, "strcmp"));
?>
спричиняє таке виведення:
Array ( [a] => g [c] => c [0] => red ) Array ( [c] => c [0] => red )
array_uintersect_uassoc ($a, $b, …, $c, 'fv', 'fk')
Повертає масив, що містить всі спільні елементи масивів-аргументів, використовуючи для порівняння значень функцію fv, а для порівняння ключів — функцію fk. Функція порівняння має повертати ціле, яке від'ємне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Наприклад, код<?php
$a = array ( "a" => "g", "b" => "b", "blue", "red");
$b = array ( "a" => "G", "B" => "b", "yellow","red");
print_r (array_uintersect_uassoc ($a, $b, "strcasecmp", "strcmp"));
?>
спричиняє таке виведення:
Array ( [a] => g [1] => red )
array_uintersect ($a, $b, …, $c, 'f')
Повертає масив, що містить всі спільні елементи масивів-аргументів, використовуючи для порівняння значень функцію f. Функція порівняння має повертати ціле, яке від'ємне, дорівнює нулю або додатне, якщо перший аргумент є відповідно меншим, рівним або більшим, ніж другий. Наприклад, код<?php
$a = array ( "a" => "g", "b" => "b", "blue", "red");
$b = array ( "a" => "G", "B" => "b", "yellow", "red");
print_r (array_uintersect ($a, $b, "strcmp"));
?>
спричиняє таке виведення:
Array ( [b] => b [1] => red )
array_unique ($a, $flags) Повертає результат вилучення з масиву $a повторюваних значень при збереженні ключів. Якщо відповідно до заданих налаштувань flags кілька елементів буде визначено як ідентичні, то будуть збережені ключ і значення першого такого елемента. Можливі такі налаштування flags:
<?php print_r (array_unique(["a"=>"green","red","b"=>"green","blue","red"])); print_r (array_unique([ 4, 3, 2, 1, 4, 3, 2, 4, 3, 4])); ?>
спричиняє таке виведення:
Array ( [a] => green [0] => red [1] => blue ) Array ( [0] => 4 [1] => 3 [2] => 2 [3] => 1 )
array_unshift ($a, $b, …, $c)
Додає аргументи $b, …, $c в початок масиву $a при збереженні порядку елементів. Повертає змінену довжину масиву. Всі числові ключі буде змінено таким чином, щоб нумерація за ними починалася з нуля. Рядкові ключі не буде змінено. Наприклад, код<?php
$a = array("a", "b"=>"c","d");
echo array_unshift ($a, "y","z")."\n";
print_r ($a);
?>
спричиняє таке виведення:
5 Array ( [0] => y [1] => z [2] => a [b] => c [3] => d )
array_values ($a)
Повертає масив значень елементів масиву $a з новоствореними числовими індексами. Наприклад, код<?php
$a = array ("a" => "b", "c", "d"=>"e");
print_r (array_values ($a));
?>
спричиняє таке виведення:
Array ( [0] => b [1] => c [2] => e )
array_walk_recursive ($a, 'f', $data)
Рекурсивно застосовує функцію f до кожного елемента масиву $a (у тому числі багатовимірного). Зазвичай функція f приймає два параметри: значення елемента масиву $a і його ключ. Якщо потрібно, щоб функція змінила значення в масиві, перший аргумент f визначають як посилання. Якщо зазначено необов'язковий параметр $data, то його буде передано третім параметром функції f. Потенційно змінити таким чином можна лише значення масиву, структуру самого масиву не можна змінити. Повертає true у випадку успішного завершення або false у разі помилки. Наприклад, код<?php
$a = array ('a','b','c');
$b = array ('нове_','new_','neu_');
function f (&$value, $key, $b)
{ echo $key." - ключ до ".$value."\n";
$value = $b[$key].$value;
}
array_walk_recursive ($a, 'f', $b);
print_r ($a);
?>
спричиняє таке виведення:
0 - ключ до a 1 - ключ до b 2 - ключ до c Array ( [0] => нове_a [1] => new_b [2] => neu_c )
array_walk ($a, 'f', $data)
Застосовує функцію f до кожного елемента масиву $a. Обійде всі елементи масиву незалежно від позиції покажчика. Зазвичай функція f приймає два параметри: значення елемента масиву $a і його ключ. Якщо потрібно, щоб функція змінила значення в масиві, перший аргумент f визначають як посилання. Потенційно змінити таким чином можна лише значення масиву, структуру самого масиву не можна змінити. Якщо зазначено необов'язковий параметр $data, то його буде передано третім параметром функції f. Наприклад, код<?php
$a = array ('a','b','c');
$b = array ('нове_','new_','neu_');
function f (&$value, $key, $b)
{ echo $key." - ключ до ".$value."\n";
$value = $b[$key].$value;
}
array_walk ($a, 'f', $b);
print_r ($a);
?>
спричиняє таке виведення:
0 - ключ до a 1 - ключ до b 2 - ключ до c Array ( [0] => нове_a [1] => new_b [2] => neu_c )
array ($a, $b, …, $c)
Повертає масив, створений з переліку (через кому) значень або пар ключ=>значення. У випадку запису лише значення йому буде приписано числовий ключ. У цьому випадку кожний наступний числовий ключ на 1 перевищує попередній числовий ключ. Наявність завершальної коми після останнього елемента масиву, незважаючи на деяку незвичайність, є коректним синтаксисом.
Приклади
<?php $a = array("a", "b" => array ("x" => 1, "y" => 2, "z" => 3), "c" => array (1, 2, 3, 4), "d" => array ( "e", "f"=> "g", "h"), "e", "f"); print_r($a); ?> ?>Виведення:
Array ( [0] => a [b] => Array ( [x] => 1 [y] => 2 [z] => 3 ) [c] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) [d] => Array ( [0] => e [f] => g [1] => h ) [1] => e [2] => f )
Код:<?php
$a = array (1, 1, 1, 1=>1, 2=>3, 7, 3=>4);
print_r ($a);
?>
Виведення:
Array
(
[0] => 1
[1] => 1
[2] => 3
[9] => 1
[10] => 7
[3] => 4
)
Код:<?php
print_r (array(1=>'січень','лютий','березень'));
?>
Виведення:
Array
(
[1] => січень
[2] => лютий
[3] => березень
)
Код:<?php
$a = array ('b' => 'всіх');
echo "Вітаю {$a['b']}!";
?>
Виведення:
Вітаю всіх!
arsort ($a, $flags)
Упорядковує масив у зворотному порядку зі збереженням відношення між ключами і значеннями. Корисно при упорядкуванні асоціативних масивів. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Якщо обидва порівнювані значення еквівалентні, то порядок їх в упорядкованому масиві не визначено. Необов'язковий другий параметр flags може використовуватися для налаштування поведінки сортування з використанням наступних значень:
SORT_LOCALE_STRING — порівняння елементів як рядки на основі поточного мовного стандарту (його можна змінити за допомогою setlocale);
SORT_NATURAL — порівняння елементів як рядки, використовуючи "природний порядок", наприклад natsort;
SORT_FLAG_CASE — можна об'єднувати (побітовое "або") з SORT_STRING або SORT_NATURAL для сортування рядків без урахування регістру.
<?php $a = array ("x","a" => "яблуко", "b" => "слива","y","z"); print_r($a); arsort($a); print_r($a);; ?>
спричиняє таке виведення:
Array ( [0] => x [a] => яблуко [b] => слива [1] => y [2] => z ) Array ( [a] => яблуко [b] => слива [2] => z [1] => y [0] => x )
asort($a, $flags)
Упорядковує масив зі збереженням відношення між ключами і значеннями. Це корисно при упорядкуванні асоціативних масивів. Якщо обидва порівнювані значення еквівалентні, то їхній порядок в упорядкованому масиві не визначено. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Необов'язковий параметр flags використовують для налаштування упорядкування:
SORT_LOCALE_STRING — порівняння елементів як рядків на основі поточного мовного стандарту, який можна змінити за допомогою setlocale;
SORT_NATURAL — порівняння елементів як рядки, використовуючи "природний порядок", наприклад natsort;
SORT_FLAG_CASE — можна об'єднувати (побітовое "або") з SORT_STRING або SORT_NATURAL для сортування рядків без урахування регістру;
<?php $a = array ("x","a" => "яблуко", "b" => "слива","y","z"); print_r($a); asort($a); print_r($a); ?>
спричиняє таке виведення:
Array ( [0] => x [a] => яблуко [b] => слива [1] => y [2] => z ) Array ( [0] => x [1] => y [2] => z [b] => слива [a] => яблуко )
compact ($a, $b, …, $c)
Повертає масив, що містить назви змінних (параметри) та їхні значення. Для кожного переданого аргумента, функція шукає змінну з вказаною назвою у поточній таблиці символів і додає їх у вихідний масив як ключ, а значення змінної стає значенням пари. Інакше кажучи, дія compact протилежна дії функції extract. Будь-який з параметрів може бути або рядком, що містить назву змінної, або масивом назв змінних. Масив може містити вкладені масиви назв змінних, функція compact опрацьовує їх рекурсивно. Наприклад, код
<?php $a = 1; $b = 2; $c = "x"; print_r (compact("a", ["b","c"])); ?>
спричиняє таке виведення:
Array ( [a] => 1 [b] => 2 [c] => x )
count ($a, $mode)
Повертає кількість елементів масиву $a або властивостей об'єкта $a. Як усталено необов'язковий параметр mode має значення COUNT_NORMAL (нормальний підрахунок). При значенні COUNT_RECURSIVE підрахунок буде рекурсивним. Це корисно для підрахунку всіх елементів багатовимірних масивів. Якщо аргумент не є масивом або об'єктом, буде виведено відповідне попередження й повернуто 1. За одним винятком: при значенні null буде повернуто 0. Наприклад, код
<?php $a=array(0, 1, 2, [3, 4, 5]); echo count($a)." "; echo count($a,COUNT_RECURSIVE)." "; $b=array("a"=>"b", ["c"=>"d", "e"=>"f"]); echo count($b)." "; echo count($b,COUNT_RECURSIVE); ?>
спричиняє таке виведення:
4 7 2 4
current ($a)
Повертає значення елемента масиву $a, на який вказує його внутрішній покажчик. Якщо внутрішній покажчик вказує за межі списку елементів або масив порожній, повертає false. Часто використовують разом з функціями next, prev, end, що вказують відповідно на наступну, попередню та кінцеву позиції.
Примітка. Для коректного обходу масиву, який може містити false, використовують функцію foreach. При використанні з цією метою функції current для коректного відстеження кінця масиву використовують функцію key на тому самому елементі, на якому використовували current, і перевіряють її результат на строгу нерівність null.
Наприклад, код
<?php $a = array ('a','b'=>'c','d','e'); echo current($a)." "; echo next($a)." "; echo current($a)." "; echo prev($a)." "; echo end($a)." "; echo current($a)."\n"; var_dump (current(array())); var_dump (current(array(array()))); ?>
спричиняє таке виведення:
a c c a e e bool(false) array(0) { }
end ($a)
Встановлює внутрішній покажчик масиву елемента масиву $a на його останній елемент і повертає його значення або false для порожнього масиву. Приклад подано в описі current.
extract ($a, $flags, $prefix)
Імпортує змінні з асоціативного масиву $a у поточну таблицю символів і повертає кількість успішно імпортованих змінних. Для кожної пари ключ/значення буде створено змінну згідно зі значеннями flags і prefix. Кожен ключ буде перевірено щодо коректності назви змінної, збігу з наявними назвами. Не рекомендують застосовувати на неперевірених даних. Наприклад, на результаті введення даних користувачем. Аргумент flags визначає спосіб тлумачення неправильних / числових ключів і колізій. Він може набувати таких значень:
EXTR_IF_EXISTS — перезаписати лише змінні, вже наявні у поточній таблиці символів, інакше нічого не робити;
EXTR_OVERWRITE — якщо змінна з такою назвою існує, її буде переписано;
EXTR_PREFIX_ALL — додати префікс $prefix до всіх назв створюваних змінних;
EXTR_PREFIX_IF_EXISTS — створити лише префікс-версії змінних, якщо версія даної змінної з назвою без префікса вже наявна;
EXTR_PREFIX_INVALID — додати префікс $prefix лише до некоректних назв чи у випадку числових ключів;
EXTR_PREFIX_SAME — якщо змінна з такою назвою існує, до її імені буде додано префікс — значення $prefix;
EXTR_REFS — витягти змінні як посилання. Це означає, що значення таких змінних будуть посилатися на значення масиву $ay. Можна використовувати окремо або у поєднанні з іншими значеннями $flags за допомогою побітового "або";
EXTR_SKIP — якщо змінна з такою назвою існує, її поточне значення не буде перезаписано.
Якщо значення $flags не вказано, воно дорівнює EXTR_OVERWRITE.
$prefix має значення лише при flags встановленому як EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID або EXTR_PREFIX_IF_EXISTS. Якщо у результаті додавання префікса не буде отримано припустиму назву змінної, її не буде імпортовано у поточну символьну таблицю. Використання числових масивів не буде результативним, якщо не використано EXTR_PREFIX_ALL або EXTR_PREFIX_INVALID.
Наприклад, код
<?php $a = array ('x'=>"u", 'y'=>"v", 'z'=>"w"); echo extract ($a)."\n"; echo '$x $y $z'."\n". $x." ".$y." ".$y."\n\n"; $b = array (1, 22, 333, 4444); echo extract ($b,EXTR_PREFIX_INVALID, "b")."\n"; echo '$b_0 $b_1 $b_2 $b_3'."\n". $b_0." ".$b_1." ".$b_2." ".$b_3."\n"; ?>
спричиняє таке виведення:
3 $x $y $z u v v 4 $b_0 $b_1 $b_2 $b_3 1 22 333 4444
in_array ($x, $a, $strict)
Повертає true, якщо $x знайдено серед значень масиву $a, інакше повертає false. При невказаному чи хибному значенні $strict при пошуку буде використано нестроге порівняння. Інакше (при вказаному значенні true) буде також перевірено збіг типів параметра $x і відповідного значення масиву $a.
Приклади
<?php $a = array("Linux", "Windows", "MacOS"); if (in_array ("Linux", $a)) echo "Знайдено Linux"."\n"; if (!in_array ("windows",$a)) echo "Не знайдено windows"."\n";; if (!in_array ("MS-DOS", $a)) echo "Не знайдено MS-DOS"."\n"; ?>Виведення:
Знайдено Linux Не знайдено windows Не знайдено MS-DOS
<?php $a = array (11, '12', 13); if (in_array ('12', $a, true)) echo "'12 'знайдено\n"; if (!in_array ( 12, $a, true)) echo "12 не знайдено\n"; if (in_array ( 13, $a, true)) echo "13 знайдено \n"; if (!in_array ('13', $a, true)) echo "'13' не знайдено\n"; ?>Виведення:
'12 'знайдено 12 не знайдено 13 знайдено '13' не знайдено
<?php $a = array (array('p','q'), array ('r','s'), 'o'); if (in_array (array('p','q'), $a)) echo "['p','q'] знайдено \n"; if (!in_array (array('r','t'), $a)) echo "['r','t'] не знайдено \n"; if (!in_array (array('s','r'), $a)) echo "['s','r'] не знайдено \n"; ?>Виведення:
['p','q'] знайдено ['r','t'] не знайдено ['s','r'] не знайдено
key($a)
Повертає ключ поточного елемента масиву, на який у даний момент вказує внутрішній вказівник масиву. Не змінює вказівник. Якщо внутрішній вказівник вказує поза межі масиву або масив порожній, повертає null. Наприклад, код
<?php $a = array('a'=>'x','b'=>'y','c'=>'z','d'=>'x','e'=>'y','f'=>'z'); // Виведення всіх ключів асоціативного масиву, // при яких значення дорівнює "x" while ($t = current($a)) { if ($t == 'x') echo key($a)." "; next($a); // перехід до наступного елемента } ?>
спричиняє таке виведення:
a d
krsort($a, $flags)
Упорядковує масив $a у порядку спадання ключів, зберігаючи відношення між ключами і значеннями. Необов'язковий параметр $flags можна використовувати для зміни налаштування з використанням таких значень:
SORT_LOCALE_STRING — порівняння елементів як рядки на основі поточного мовного стандарту, який можна змінити за допомогою setlocale;
SORT_NATURAL — порівняння елементів як рядків, використовуючи "природний порядок", наприклад natsort;
SORT_FLAG_CASE — можна об'єднувати (побітовое "або") з SORT_STRING або SORT_NATURAL для сортування рядків без урахування регістру.
Повертає true у випадку успішного завершення або false у разі виникнення помилки. Наприклад, код
<?php $a = array('d'=>'x','b'=>'y','c'=>'z','a'=>'t'); print_r($a); krsort ($a); print_r($a); ?>
спричиняє таке виведення:
Array ( [d] => x [b] => y [c] => z [a] => t ) Array ( [d] => x [c] => z [b] => y [a] => t )
ksort ($a, $flags)
Упорядковує масив $a у порядку зростання ключів, зберігаючи відношення між ключами і значеннями. Необов'язковий параметр $flags можна використовувати для зміни налаштування. Опис значень див. вище в описі krsort, що упорядковує за спаданням ключів. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Наприклад, код
<?php $a = array('d'=>'x','b'=>'y','c'=>'z','a'=>'t'); print_r($a); ksort ($a); print_r($a); ?>
спричиняє таке виведення:
Array ( [d] => x [b] => y [c] => z [a] => t ) Array ( [a] => t [b] => y [c] => z [d] => x )
list ($x, $y, …, , $z) = $a;
Надає змінним $x, $y, …, $z значення з масиву $a.
Приклади
<?php $a = array ('пательня','макогон','праник'); list ($w1, $w2, $w3) = $a; echo "Що таке $w1, $w2, $w3?\n"; list ($u1, ,$u3) = $a; echo "Перше й третє слово - $u1 та $u3.\n"; list ( , ,$v3) = $a; echo "Третє слово - $v3.\n"; list ($x) = "абвгд"; echo "Рядок замість масиву - $x.\n"; ?>Виведення:
Що таке пательня, макогон, праник? Перше й третє слово - пательня та праник. Третє слово - праник. Рядок замість масиву - .
Код:<?php
list ($x, list($y, $z)) = array(2, array(3,5));
echo "$x $y $z";
?>
Виведення:
2 3 5
Код:<?php
$a = array ('a','b','c');
list ($b[2],$b[1],$b['g']) = $a;
print_r($b);
?>
Виведення:
Array
(
[2] => a
[1] => b
[g] => c
)
Код:<?php
$a = array (2 => 'a', 'a' => 'b', 0 => 'c');
$a[1] = 'd';
list ($x, $y, $z) = $a;
print_r($a);
echo ("$x $y $z");
?>
Виведення:
Array
(
[2] => a
[a] => b
[0] => c
[1] => d
)
c d a
Код:<?php
list(1 => $x, 3 => $y) = [1, 11, 3, 22];
echo "$x $y";
?>
Виведення:
11 22
natcasesort($a)
Упорядковує масив $a у звичному для людини реєстронезалежному порядку. Такий алгоритм називають "natural ordering". Якщо порівнювані значення еквівалентні, то порядок їх в упорядкованому масиві не визначений. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Наприклад, код
<?php $a = array('IMG0.png','img12.png','img10.png','img2.png','img1.png','IMG3.png'); sort ($a); echo "Звичайнe упорядкування:\n"; print_r ($a); natcasesort ($a); echo "Natural ordering без урахування регістру:\n"; print_r ($a); ?>
спричиняє таке виведення:
Звичайнe упорядкування: Array ( [0] => IMG0.png [1] => IMG3.png [2] => img1.png [3] => img10.png [4] => img12.png [5] => img2.png ) Natural ordering без урахування регістру: Array ( [0] => IMG0.png [2] => img1.png [5] => img2.png [1] => IMG3.png [3] => img10.png [4] => img12.png )
natsort ($a)
Упорядковує масив $a у звичному для людини реєстрозалежному порядку. Такий алгоритм називать "natural ordering". Якщо порівнювані значення еквівалентні, то порядок їх в упорядкованому масиві не визначений. Повертає true у випадку успішного завершення або false у разі виникнення помилки.
Приклади
<?php $a = array ("img12.png","img10.png","img2.png","img1.png"); asort ($a); echo "Звичайне упорядкування:\n"; print_r ($a); natsort ($a); echo "Natural ordering\n"; print_r ($a); ?>Виведення:
Звичайне упорядкування: Array ( [3] => img1.png [1] => img10.png [0] => img12.png [2] => img2.png ) Natural ordering Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )
Код:<?php
echo "Від'ємні числа:\n";
$a = array ( '- 5', '3', '- 2', '0', '- 1000', '9', '1');
print_r ($a);
natsort ($a);
print_r ($a);
echo "\nЗаписи з нулями:\n";
$a= array ('09 ',' 8 ',' 10 ',' 009 ',' 011 ',' 0 ');
print_r ($a);
natsort ($a);
print_r ($a);
?>
Виведення:
Від'ємні числа:
Array
(
[0] => - 5
[1] => 3
[2] => - 2
[3] => 0
[4] => - 1000
[5] => 9
[6] => 1
)
Array
(
[2] => - 2
[0] => - 5
[4] => - 1000
[3] => 0
[6] => 1
[1] => 3
[5] => 9
)
Записи з нулями:
Array
(
[0] => 09
[1] => 8
[2] => 10
[3] => 009
[4] => 011
[5] => 0
)
Array
(
[5] => 0
[3] => 009
[4] => 011
[1] => 8
[0] => 09
[2] => 10
)
next ($a)
Повертає наступний елемент масиву $a і пересуває його внутрішній покажчик на одну позицію вперед. Наприклад, код
<?php $a = array ( 'пішки', 'велосипед', 'авто', 'потяг'); echo current($a)." "; echo next($a)." "; echo next($a)." "; echo prev($a)." "; echo end ($a)." "; ?>
спричиняє таке виведення:
пішки велосипед авто велосипед потяг
Примітка. Кінець масиву не відрізнити від елемента масиву типу bool зі значенням false. Для коректного обходу масиву, який може містити false, використовують функцію foreach. При використанні функції next для відстеження кінця масиву перевіряють, що функція key повертає null.
prev($a) — антонім (протилежнй за дією) функції next: повертає попередній елемент масиву $a і пересуває його внутрішній покажчик на одну позицію назад.
range ($start, $end , $step)
Повертає масив, що містить значення, починаючи зі значення start, закінчуючи значенням end з кроком step. Якщо останній елемент не вказано, то його значення як усталено дорівнює 1. Наприклад, код
<?php foreach (range (3, 7) as $x) echo $x." "; echo "\n"; foreach (range (10,50,10) as $x) echo $x." "; echo "\n"; foreach (range ('a', 'e') as $x) echo $x." "; echo "\n"; foreach (range ('e', 'a') as $x) echo $x." "; echo "\n"; ?>
спричиняє таке виведення:
3 4 5 6 7 10 20 30 40 50 a b c d e e d c b a
reset ($a)
Переміщає внутрішній вказівник масиву $a на його перший елемент і повертає значення цього першого елемента. Повертає false, якщо масив порожній. Наприклад, код
<?php $a = array('a', 'b', 'c', 'd'); echo current($a)." "; // виведення значення поточного елемента next ($a); // пересування вказівника на наступний елемент next ($a); echo current($a). " "; reset ($a); echo current($a); ?>
спричиняє таке виведення:
a c a
Примітка. Результат використання на порожньому масиві не відрізняється від використання масиву, перший елемент якого має тип bool зі значенням false. Для правильної роботи можна використати функцію count або перевірити значення key (чи воно не дорівнює null, після виклику reset).
rsort ($a, $flags)
Упорядковує масив $a у порядку спадання. Якщо порівнювані значення еквівалентні, то порядок їх в упорядкованому масиві не визначений. Необов'язковий другий параметр flags використовують для налаштування упорядкування:
SORT_LOCALE_STRING — порівняння елементів як рядки на основі поточного мовного стандарту, який можна змінити за допомогою setlocale;
SORT_NATURAL — порівняння елементів як рядків з використанням "природного порядку", наприклад natsort;
SORT_FLAG_CASE — можна об'єднувати (побітовое "або") з SORT_STRING або SORT_NATURAL для упорядкування рядків без урахування регістру.
<?php $a = array ("груша", "айва", "гриб", "слива",); rsort($a); print_r($a); ?>
спричиняє таке виведення:
Array ( [0] => слива [1] => груша [2] => гриб [3] => айва )
shuffle ($a)
Перставляє значення елементів масиву у випадковому порядку. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Наприклад, код
<?php $a = array(1,2,3,4); shuffle($a); print_r($a);; $a = array("a","b","c","d"); shuffle($a); print_r($a); $a = array("a"=>1,"b"=>2,"c"=>3,"d"=>4);shuffle($a); print_r($a); ?>
може спричинити таке виведення:
Array ( [0] => 2 [1] => 3 [2] => 1 [3] => 4 ) Array ( [0] => c [1] => d [2] => a [3] => b ) Array ( [0] => 3 [1] => 4 [2] => 1 [3] => 2 )
sort($a, $flags)
Упорядковує масив за зростанням значень. Якщо порівнювані значення еквівалентні, то порядок їх в упорядкованому масиві не визначений. Повертає true у випадку успішного завершення або false у разі виникнення помилки. Необов'язковий параметр $flags використовують для налаштування упорядкування:
SORT_LOCALE_STRING — порівняння елементів як рядки на основі поточного мовного стандарту, який можна змінити за допомогою setlocale;
SORT_NATURAL — порівняння елементів як рядків з використанням "природного порядку", наприклад natsort;
SORT_FLAG_CASE — можна об'єднувати (побітовое "або") з SORT_STRING або SORT_NATURAL для упорядкування рядків без урахування регістру.
<?php $a = array("c","d","b","a"); sort($a); print_r($a); $a = array("c"=>"c","d"=>"d","b"=>"b","a"=>"a"); sort($a); print_r($a); $a = array("Orange1","orange2","Orange3","orange20"); sort ($a, SORT_NATURAL | SORT_FLAG_CASE); print_r($a); ?>
спричиняє таке виведення:
Array ( [0] => a [1] => b [2] => c [3] => d ) Array ( [0] => a [1] => b [2] => c [3] => d ) Array ( [0] => Orange1 [1] => orange2 [2] => Orange3 [3] => orange20 )
<?php function f ($a, $b) { if ($a == $b) return 0; else return ($a < $b)? -1: 1; } $a = array('a'=>4,'b'=>8,'c'=>-1,'d'=>-9,'e'=>2,'f'=>5,'g'=>3,'h'=>-4); uasort ($a,'f'); print_r($a); ?>
спричиняє таке виведення:
Array ( [d] => -9 [h] => -4 [c] => -1 [e] => 2 [g] => 3 [a] => 4 [f] => 5 [b] => 8 )
<?php $a = array ("D"=> 1, "c"=> 2, "AX"=> 3, "aa"=> 4); uksort($a, "strcasecmp"); print_r ($a); uksort($a, "strcmp"); print_r ($a); ?>
спричиняє таке виведення:
Array ( [aa] => 4 [AX] => 3 [c] => 2 [D] => 1 ) Array ( [AX] => 3 [D] => 1 [aa] => 4 [c] => 2 )
<?php $a = array (0,1,2,"a"=>"b","c"=>"d"); unset ($a[1]); unset ($a["a"]); print_r($a); ?>
спричиняє таке виведення:
Array ( [0] => 0 [2] => 2 [c] => d )
<?php function f ($a, $b) { if ($a == $b) return 0; else return ($a < $b)? -1: 1; } $a = array (3,2,4,1); print_r($a); usort($a, "f"); print_r($a); $a = array ("z"=>0.3,"y"=>0.4,"a"=>5,"x"=>0.2); usort($a, "f"); print_r($a); ?>Виведення:
Array ( [0] => 3 [1] => 2 [2] => 4 [3] => 1 ) Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) Array ( [0] => 0.2 [1] => 0.3 [2] => 0.4 [3] => 5 )
Код:<?php
function f ($x, $y) {return strcmp ($x["c"], $y["c"]);}
$a =[["a"=>1,"b"=>2,"c"=>3.2],
["b"=>2,"c"=>3.3,"d"=>4],
["c"=>3.1,"d"=>4,"e"=>5]];
usort ($a,"f");
print_r($a);
?>
Виведення:
Array
(
[0] => Array
(
[c] => 3.1
[d] => 4
[e] => 5
)
[1] => Array
(
[a] => 1
[b] => 2
[c] => 3.2
)
[2] => Array
(
[b] => 2
[c] => 3.3
[d] => 4
)
)
Код:<?php
class X
{ var $name;
function X ($name) {$this-> name = $name;}
static function g ($a, $b) // функція порівняння
{ if ($a == $b) return 0;
else return ($a > $b)? +1: -1;
}
}
$a=[new X ("b"), new X ("c"), new X ("a")];
usort ($a, array("X", "g"));
print_r($a);
?>
Виведення:
Array
(
[0] => X Object
(
[name] => a
)
[1] => X Object
(
[name] => b
)
[2] => X Object
(
[name] => c
)
)
each ($a)
Повертає поточну пару ключ / значення і переміщує вказівник до наступного елемента, поки не буде досягнутий кінець масиву. Пару ключ / значення повертає у вигляді масиву з 4 елементів з ключами 0, 1, key і value. Елементи 0 і key містять назву ключа елемента масиву, а 1 і value містять значення. Якщо внутрішній покажчик масиву вказує за його межі, each поверне false.
Для повторного обходу масиву за допомогою each необхідно використовувати функцію reset.
Приклади
<?php $a = array ("t", "z"=>"y","x"=>"w","v"=>"u"); $b = each ($a); print_r ($b); $b = each ($a); print_r ($b); ?>Виведення:
Array ( [1] => t [value] => t [0] => 0 [key] => 0 ) Array ( [1] => y [value] => y [0] => z [key] => z )
Код:<?php
$a = array ("t", "z"=>"y","x"=>"w","v"=>"u");
reset ($a);
while (list($key,$val) = each($a)) echo "$key => $val ";
?>
Виведення:
0 => t z => y x => w v => u
Примітка. Додавання елемента у масив скидає покажчик. Якщо робити це всередині циклу з використанням each, можна отримати зациклення. Функція each також приймає і об'єкт, але може повернути несподіваний результат. Тому послідовно переглядати властивості об'єкта за допомогою each не рекомендують.
Використано матеріали сторінки Функции для работы с массивами, що містить застереження щодо використання при попередніх (до 8.0.0) версіях і доповнення користувачів.