PHP
Функции для работы с массивами
Функции для работы с массивами: php.net
Наиболее полезные функции для работы с массивами в PHP
count - подсчитывает количество элементов массива или что-то в объекте
array_diff - вычислить расхождение массивов
array_intersect - вычисляет схождение массивов
array_key_exists - проверяет, присутствует ли в массиве указанный ключ или индекс
array_keys - возвращает числовые и строковые ключи, содержащиеся в массиве array.
array_values - выбирает все значения массива
array_merge - объединяет массивы или сливает массивы в один
array_rand - выбирает один или несколько случайных ключей из массива
array_reverse - возвращает массив с элементами в обратном порядке
compact - создает массив, содержащий названия переменных и их значения
extract - извлекает из массива элементы и создает для них соответствующие переменные.
arsort - сортирует массив в обратном порядке, сохраняя ключи.
asort - сортирует массив, сохраняя ключи.
sort - сортирует массив, но ключи не сохраняются
rsort - сортирует массив в обратном порядке,но ключи не сохраняются
array_combine - создает новый массив, используя один массив в качестве ключей, а другой для его значений.
array_search - осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи.
array_shift - извлекает первый элемент массива
array_unique - убирает повторяющиеся значения из массива
array_unshift - добавляет один или несколько элементов в начало массива
array_flip - меняет местами ключи с их значениями в массиве
array_pop - извлекает последний элемент массива
array_push - добавляет один или несколько элементов в конец массива
in_array — проверяет, присутствует ли в массиве значение
count
count — подсчитывает количество элементов массива или что-то в объекте. Если второй, необязательный, параметр установлен в COUNT_RECURSIVE (или 1), то функция count() будет рекурсивно подсчитывать количество элементов массива. Это особенно полезно для подсчёта всех элементов многомерных массивов.
<?php
$arr = array( 'Ivanov' , 'Petrov' , 'Sidorov' );
$goods = [
[
'title' => 'Nokia',
'price' => 100,
'description' => 'Description'
],
[
'title' => 'iPad',
'price' => 200,
'description' => 'Description'
]
];
echo ($arr); // получим 3
echo ($goods); // получим 2 (в массиве $goods два вложенных массива)
echo ($goods, 1);
// - получим 8 (рекурсивно считает все элементы массива):
// два вложенных массива плюс элементы этих массивов (6)
// так, как второй параметр установлен: 1
?>
array_diff
array_diff — вычислить расхождение массивов.
Находит в первом массиве значения, которых нет во втором массиве или в следующих массивах.
<?php
$array1 = array ("a" => "green", "red", "blue", "red", 2);
$array2 = array ("b" => "green", "yellow", "red");
$result = ($array1, $array2);
echo '<pre>';
($result);
echo '</pre>';
?>
выведет:
Array
(
[1] => blue
[3] => 2
)
array_intersect
array_intersect — вычисляет схождение массивов.
Находит в первом массиве значения, которые есть во втором или следующих массивах.
<?php
$array1 = array ("a" => "green", "red", "blue", "red", 2);
$array2 = array ("b" => "green", "yellow", "red");
$result = ($array1, $array2);
echo '<pre>';
($result);
echo '</pre>';
?>
выведет:
Array
(
[a] => green
[0] => red
[2] => red
)
- взяты те элементы, которые присутствуют во втором массиве
array_key_exists
array_key_exists — проверяет, присутствует ли в массиве указанный ключ или индекс:
<?php
$search_array = array ('first' => 1, 'second' => 4);
if ( ('first', $search_array)) {
// - где 'first' - проверяемое значение
echo "Массив содержит элемент 'first'.";
?>
выведет:
"Массив содержит элемент 'first'."
array_keys
array_keys — возвращает числовые и строковые ключи, содержащиеся в массиве array.
<?php
$result = ($arr);
$result1 = ($goods[0]);
echo '<pre>';
($result);
echo ' </pre>';
echo '<pre>';
($result1);
echo '</pre>';
?>
выведет:
Array
(
[0] => 0
[1] => 1
[2] => 2
)
Array
(
[0] => title
[1] => price
[2] => description
)
- создается новый массив и туда попадают ключи.
array_values
array_values — выбирает все значения массива:
<?php
$result = ($goods[0]);
echo '<pre>';
($result);
echo '</pre>';
?>
выведет:
Array
(
[0] => Nokia
[1] => 100
[2] => Description
)
array_merge
array_merge — объединяет массивы или сливает массивы в один - значения одного массива присоединяются к концу предыдущего.
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = ($array1, $array2);
echo '<pre>';
($result);
echo '</pre>';
?>
выведет:
Array
(
[color] => green
[0] => 2
[1] => 4
// добавление элементов второго массива
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
- в итоговом масиве ключу color соответствует значение green. То есть значение второго массива перезаписало значение первого. Числовые ключи не перезаписываются, они добавляются в конец массива.
Если массивы объединять с помощью оператора '+', то ключи не перезаписываются. "color" => "red" - не перезаписывается, а "a" и "b" не добавляются в конец, то есть не перезаписывают ключи значений "2" и "4" из первого массива:
<?php
$result = $array1 + $array2;
echo '<pre>';
($result);
echo '</pre>';
?>
выведет:
Array
(
[color] => red
[0] => 2
[1] => 4
// добавление элементов второго массива
[shape] => trapezoid
[2] => 4
)
- фактически мы берем все значения ключей из первого массива, а из второго и последующих массивов мы просто берем неповторяющиеся значения ключей.
array_rand
array_rand — выбирает один или несколько случайных ключей из массива - по умолчанию одно значение:
<?php
$result = ($arr);
echo '<pre>';
($result);
echo '</pre>';
?>
- будет взят случайный ключ.
Если записать array_rand($arr, 2) - будет взято два случайных ключа.
array_reverse
array_reverse — возвращает массив с элементами в обратном порядке:
<?php
$result = ($arr);
echo '<pre>';
($result);
echo '</pre>';
?>
- выведет массив в обратном порядке - массив был переиндексирован.
Чтобы перевернуть массив с сохранением ключей,
добавляется опция: array_reverse($arr, TRUE).
compact
compact — создает массив, содержащий названия переменных и их значения
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$result = ("city", "state", "event");
echo '<pre>';
($result);
echo '</pre>';
?>
выведет:
Array
(
[city] => San Francisco
[state] => CA
[event] => SIGGRAPH
)
extract
extract — извлекает из массива элементы и создает для них соответствующие переменные.
Данная функция работает только с асоциативными массивами.
<?php
$result = [
'city' => 'San Francisco',
'state' => 'CA',
'event' => 'do'
];
($result);
echo $city;
echo $state;
echo $event;
echo '<pre>';
($result);
echo '</pre>';
?>
выведет:
San Francisco CA do
Array
(
[city] => San Francisco
[state] => CA
[event] => SIGGRAPH
)
arsort
arsort — сортирует массив в обратном порядке, сохраняя ключи.
Второй, необязательный, параметр изменяет поведение сортировки
(Флаги сортировки: php.net )
<?php
$arr = array ( 'Ivan' => 'Ivanov' , 'Petr' => 'Petrov' , 'Sidor' => 'Sidorov' );
echo '<pre>';
($arr);
echo '</pre>';
($arr);
echo '<pre>';
($arr);
echo '</pre>';
?>
выведет:
Array
(
[Ivan] => Ivanov
[Petr] => Petrov
[Sidor] => Sidorov
)
Array
(
[Sidor] => Sidorov
[Petr] => Petrov
[Ivan] => Ivanov
)
asort
asort — сортирует массив, сохраняя ключи.
Эта функция сортирует массив таким образом, что сохраняются отношения между ключами и значениями.
Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.
Второй, необязательный, параметр (Флаги сортировки: php.net ) изменяет поведение сортировки.
<?php
$arr = array ( 'Ivan' => 'Ivanov', 'Sidor' => 'Sidorov', 'Petr' => 'Petrov' );
echo '<pre>';
($arr);
echo '</pre>';
($arr);
echo '<pre>';
($arr);
echo '</pre>';
?>
выведет:
Array
(
[Ivan] => Ivanov
[Sidor] => Sidorov
[Petr] => Petrov
)
Array
(
[Ivan] => Ivanov
[Petr] => Petrov
[Sidor] => Sidorov
)
sort
Функция sort — сортирует массив, но ключи не сохраняются, то есть массив будет переиндексирован - ключи станут числовыми.
<?php
$arr = array ( 'Ivan' => 'Ivanov', 'Sidor' => 'Sidorov', 'Petr' => 'Petrov' );
echo '<pre>';
($arr);
echo '</pre>';
($arr);
echo '<pre>';
($arr);
echo '</pre>';
?>
выведет:
Array
(
[Ivan] => Ivanov
[Sidor] => Sidorov
[Petr] => Petrov
)
Array
(
[0] => Ivanov
[1] => Petrov
[2] => Sidorov
)
rsort
rsort — сортирует массив в обратном порядке, но ключи не сохраняются, то есть массив будет переиндексирован - ключи станут числовыми.
<?php
$arr = array ( 'Ivan' => 'Ivanov', 'Sidor' => 'Sidorov', 'Petr' => 'Petrov' );
echo '<pre>';
($arr);
echo '</pre>';
($arr);
echo '<pre>';
($arr);
echo '</pre>';
?>
выведет:
Array
(
[Ivan] => Ivanov
[Sidor] => Sidorov
[Petr] => Petrov
)
Array
(
[0] => Sidorov
[1] => Petrov
[2] => Ivanov
)
array_combine
array_combine — создает новый массив, используя один массив в качестве ключей, а другой для его значений.
Синтаксис:
array $keys, array $values );
(
- где array $keys - массив ключей,
- array $values - массив значений.
Пример:
<?php
$keys =array ( 'Ivan' , 'Sidor' , 'Petr' ); // массив ключей
$values =array ( 'Ivanov', 'Sidorov', 'Petrov' );// массив значений
$arr = ($keys, $values );
echo '<pre>';
($arr);
echo '</pre>';
?>
выведет:
Array
(
[Ivan] => Ivanov
[Sidor] => Sidorov
[Petr] => Petrov
)
array_search
array_search — осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи.
Первым параметром будет - искомое значение.
Вторым параметром - массив.
<?php
$arr = array ( 'Ivan' => 'Ivanov', 'Sidor' => 'Sidorov', 'Petr' => 'Petrov' );
$key = ('Sidorov', $arr );
($$key);// выведет: Sidor
$key = ('Sidorov', $arr );
($key);// выведет: Petr
?>
Наверх Наверх