Поиск всех значений массива php

Функции для работы с массивами

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() будет рекурсивно подсчитывать количество элементов массива. Это особенно полезно для подсчёта всех элементов многомерных массивов.

$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 — вычислить расхождение массивов.

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

$array1 = array ( «a» => «green» , «red» , «blue» , «red» , 2 );
$array2 = array ( «b» => «green» , «yellow» , «red» );

$result = array_diff ( $array1 , $array2 );

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
выведет:
Array
(
[1] => blue
[3] => 2
)

Читайте также:  Вертикальное центрирование css absolute

array_intersect

array_intersect — вычисляет схождение массивов.

Находит в первом массиве значения , которые есть во втором или следующих массивах .

$array1 = array ( «a» => «green» , «red» , «blue» , «red» , 2 );
$array2 = array ( «b» => «green» , «yellow» , «red» );

$result = array_intersect ( $array1 , $array2 );

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
выведет:
Array
(
[a] => green
[0] => red
[2] => red
)
— взяты те элементы, которые присутствуют во втором массиве

array_key_exists

array_key_exists — проверяет, присутствует ли в массиве указанный ключ или индекс:

$search_array = array ( ‘first’ => 1 , ‘second’ => 4 );

if ( array_key_exists ( ‘first’ , $search_array )) <
// — где ‘first’ — проверяемое значение
echo «Массив содержит элемент ‘first’.» ;
?>
выведет:
«Массив содержит элемент ‘first’.»

array_keys

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

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

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;

echo ‘

' ; 
print_r ( $result1 );
echo '

‘ ;
?>
выведет:
Array
(
[0] => 0
[1] => 1
[2] => 2
)
Array
(
[0] => title
[1] => price
[2] => description
)
— создается новый массив и туда попадают ключи.

array_values

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

$result = array_values ( $goods [ 0 ]);

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
выведет:
Array
(
[0] => Nokia
[1] => 100
[2] => Description
)

array_merge

array_merge — объединяет массивы или сливает массивы в один — значения одного массива присоединяются к концу предыдущего.

$array1 = array ( «color» => «red» , 2 , 4 );
$array2 = array ( «a» , «b» , «color» => «green» , «shape» => «trapezoid» , 4 );

$result = array_merge ( $array1 , $array2 );

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
выведет:
Array
(
[color] => green
[0] => 2
[1] => 4
// добавление элементов второго массива
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)

— в итоговом масиве ключу color соответствует значение green . То есть значение второго массива перезаписало значение первого. Числовые ключи не перезаписываются, они добавляются в конец массива.

Если массивы объединять с помощью оператора ‘ + ‘, то ключи не перезаписываются. «color» => «red» — не перезаписывается, а » a » и » b » не добавляются в конец, то есть не перезаписывают ключи значений » 2 » и » 4 » из первого массива:

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
выведет:
Array
(
[color] => red
[0] => 2
[1] => 4
// добавление элементов второго массива
[shape] => trapezoid
[2] => 4
)

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

array_rand

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

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
— будет взят случайный ключ.
Если записать array_rand($arr, 2) — будет взято два случайных ключа.

Читайте также:  Make plugin in java

array_reverse

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

$result = array_reverse ( $arr );

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
— выведет массив в обратном порядке — массив был переиндексирован.
Чтобы перевернуть массив с сохранением ключей,
добавляется опция: array_reverse($arr, TRUE) .

compact

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

$city = «San Francisco» ;
$state = «CA» ;
$event = «SIGGRAPH» ;

$result = compact ( «city» , «state» , «event» );

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
выведет:
Array
(
[city] => San Francisco
[state] => CA
[event] => SIGGRAPH
)

extract

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

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

$result = [
‘city’ => ‘San Francisco’ ,
‘state’ => ‘CA’ ,
‘event’ => ‘do’
] ;

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

echo ‘

' ; 
print_r ( $result );
echo '

‘ ;
?>
выведет:
San Francisco CA do
Array
(
[city] => San Francisco
[state] => CA
[event] => SIGGRAPH
)

arsort

arsort — сортирует массив в обратном порядке, сохраняя ключи .

Второй, необязательный, параметр изменяет поведение сортировки

$arr = array ( ‘Ivan’ => ‘Ivanov’ , ‘Petr’ => ‘Petrov’ , ‘Sidor’ => ‘Sidorov’ );

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;

echo ‘

' ; 
print_r ( $arr );
echo '

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

asort

asort — сортирует массив, сохраняя ключи .

Эта функция сортирует массив таким образом, что сохраняются отношения между ключами и значениями.
Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение .

Второй, необязательный, параметр ( Флаги сортировки: php.net ) изменяет поведение сортировки.

$arr = array ( ‘Ivan’ => ‘Ivanov’ , ‘Sidor’ => ‘Sidorov’ , ‘Petr’ => ‘Petrov’ );

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;

echo ‘

' ; 
print_r ( $arr );
echo '

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

sort

Функция sort — сортирует массив, но ключи не сохраняются, то есть массив будет переиндексирован — ключи станут числовыми .

$arr = array ( ‘Ivan’ => ‘Ivanov’ , ‘Sidor’ => ‘Sidorov’ , ‘Petr’ => ‘Petrov’ );

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;

echo ‘

' ; 
print_r ( $arr );
echo '

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

rsort

rsort — сортирует массив в обратном порядке, но ключи не сохраняются, то есть массив будет переиндексирован — ключи станут числовыми .

$arr = array ( ‘Ivan’ => ‘Ivanov’ , ‘Sidor’ => ‘Sidorov’ , ‘Petr’ => ‘Petrov’ );

Читайте также:  Команда сплит в питоне

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;
?>
выведет:
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 — массив значений.

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

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

echo ‘

' ; 
print_r ( $arr );
echo '

‘ ;

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

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

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

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

$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
?>

Источник

array_search

Замечание:

Если needle является строкой, сравнение происходит с учетом регистра.

Если третий параметр strict установлен в TRUE , то функция array_search() будет искать идентичные элементы в haystack . Это означает, что также будут проверяться типы needle в haystack , а объекты должны быть одни и тем же экземпляром.

Возвращаемые значения

Возвращает ключ для needle , если он был найден в массиве, иначе FALSE .

Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value .

Эта функция может возвращать как boolean FALSE , так и не-boolean значение, которое приводится к FALSE . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия Описание
5.3.0 Вместе со всеми внутренними функциями PHP начиная с 5.3.0, array_search() возвращает NULL , если ей были переданы неверные параметры.
4.2.0 До PHP 4.2.0, array_search() при неудаче возвращал NULL вместо FALSE .

Примеры

Пример #1 Пример использования array_search()

$array = array( 0 => ‘blue’ , 1 => ‘red’ , 2 => ‘green’ , 3 => ‘red’ );

$key = array_search ( ‘green’ , $array ); // $key = 2;
$key = array_search ( ‘red’ , $array ); // $key = 1;
?>

Смотрите также

  • array_keys() — Возвращает все или некоторое подмножество ключей массива
  • array_values() — Выбирает все значения массива
  • array_key_exists() — Проверяет, присутствует ли в массиве указанный ключ или индекс
  • in_array() — Проверяет, присутствует ли в массиве значение

Источник

Оцените статью