Основные функции для работы с массивами в 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 count ($arr); // получим 3
echo count ($goods); // получим 2 (в массиве $goods два вложенных массива)
echo count ($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 = array_diff ($array1, $array2);

echo '<pre>';
print_r ($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 = array_intersect ($array1, $array2);

echo '<pre>';
print_r ($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 (array_key_exists ('first', $search_array)) {
// - где 'first' - проверяемое значение
echo "Массив содержит элемент 'first'.";
?>
выведет:
"Массив содержит элемент 'first'."




array_keys



array_keys — возвращает числовые и строковые ключи, содержащиеся в массиве array.


<?php
$result = array_keys ($arr);
$result1 = array_keys ($goods[0]);

echo '<pre>';
print_r ($result);
echo ' </pre>';

echo '<pre>';
print_r ($result1);
echo '</pre>';
?>
выведет:
Array
(
[0] => 0
[1] => 1
[2] => 2
)
Array
(
[0] => title
[1] => price
[2] => description
)
- создается новый массив и туда попадают ключи.




array_values



array_values — выбирает все значения массива:


<?php
$result = array_values ($goods[0]);

echo '<pre>';
print_r ($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 = array_merge ($array1, $array2);

echo '<pre>';
print_r ($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>';
print_r ($result);
echo '</pre>';
?>
выведет:
Array
(
[color] => red
[0] => 2
[1] => 4
// добавление элементов второго массива
[shape] => trapezoid
[2] => 4
)



- фактически мы берем все значения ключей из первого массива, а из второго и последующих массивов мы просто берем неповторяющиеся значения ключей.



array_rand



array_rand — выбирает один или несколько случайных ключей из массива - по умолчанию одно значение:


<?php
$result = array_rand ($arr);

echo '<pre>';
print_r ($result);
echo '</pre>';
?>
- будет взят случайный ключ.
Если записать array_rand($arr, 2) - будет взято два случайных ключа.




array_reverse



array_reverse — возвращает массив с элементами в обратном порядке:


<?php
$result = array_reverse ($arr);

echo '<pre>';
print_r ($result);
echo '</pre>';
?>
- выведет массив в обратном порядке - массив был переиндексирован.
Чтобы перевернуть массив с сохранением ключей,
добавляется опция: array_reverse($arr, TRUE).




compact



compact — создает массив, содержащий названия переменных и их значения


<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$result = compact ("city", "state", "event");

echo '<pre>';
print_r ($result);
echo '</pre>';
?>
выведет:
Array
(
[city] => San Francisco
[state] => CA
[event] => SIGGRAPH
)




extract



extract — извлекает из массива элементы и создает для них соответствующие переменные.

Данная функция работает только с асоциативными массивами.


<?php
$result = [
'city' => 'San Francisco',
'state' => 'CA',
'event' => 'do'
];

extract ($result);

echo $city;
echo $state;
echo $event;

echo '<pre>';
print_r ($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>';
print_r ($arr);
echo '</pre>';

arsort ($arr);

echo '<pre>';
print_r ($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>';
print_r ($arr);
echo '</pre>';

asort ($arr);

echo '<pre>';
print_r ($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>';
print_r ($arr);
echo '</pre>';

sort ($arr);

echo '<pre>';
print_r ($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>';
print_r ($arr);
echo '</pre>';

sort ($arr);

echo '<pre>';
print_r ($arr);
echo '</pre>';
?>
выведет:
Array
(
[Ivan] => Ivanov
[Sidor] => Sidorov
[Petr] => Petrov
)
Array
(
[0] => Sidorov
[1] => Petrov
[2] => Ivanov
)




array_combine



array_combine — создает новый массив, используя один массив в качестве ключей, а другой для его значений.

Синтаксис:


array_combine ( array $keys, array $values );


- где array $keys - массив ключей,

- array $values - массив значений.


Пример:


<?php
$keys =array ( 'Ivan' , 'Sidor' , 'Petr' ); // массив ключей
$values =array ( 'Ivanov', 'Sidorov', 'Petrov' );// массив значений

$arr = array_combine ($keys, $values );

echo '<pre>';
print_r ($arr);
echo '</pre>';

?>
выведет:
Array
(
[Ivan] => Ivanov
[Sidor] => Sidorov
[Petr] => Petrov
)




array_search



array_search — осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае удачи.

Первым параметром будет - искомое значение.

Вторым параметром - массив.


<?php
$arr = array ( 'Ivan' => 'Ivanov', 'Sidor' => 'Sidorov', 'Petr' => 'Petrov' );

$key = array_search ('Sidorov', $arr );
print_r ($$key);// выведет: Sidor

$key = array_search ('Sidorov', $arr );
print_r ($key);// выведет: Petr
?>






Наверх Наверх