найти ключ по значению
Как "найти ключ по значению в массиве php?" Рассмотрим несколько вариантов поиска в разных видах массивом по значению! И выведем ключ и его позицию в массиве.
Ищем ключ по значению php.
- Как найти по значению ключ массива.
- Ищем ключ массива по значению в ассоциативном массиве php.
- Ищем ключ массива по значению в ассоциативном массиве второго уровня php.
- Ищем ключ массива по значению в ассоциативном массиве второго уровня php №2.
Как найти по значению ключ массива?
Для того, чтобы найти ключ пао значению вам понадобится:
Начнем с простого массива, где будем искать ключ по значению. И собственно без примера массива никак:
Далее нам понадобится функция array_search :
Первым аргументом размещаем искомое значение.
Вторым аргументом ставим массив в котором будем искать ключ по значению:
Выведем найденный ключ по значению с помощью echo + выведем сам массив с помощью print_r.
Код для поиска ключа в массиве по значению:
Соберем весь код поиска ключа по значению в массиве php:
<?
$массив = array ( 15, 12 , 'искомое значение', 'слово 2');
$key = array_search('искомое значение', $массив );
print_r( $массив );
echo $key;
?>
Вывод нашего массива, в котором ищем ключ:
Array
(
[0] => 15
[1] => 12
[2] => искомое значение
[3] => слово 2
)
Результат поиска ключа по значению:
Как видим наш код поиска ключа по значению прекрасно сработал, наш ключ номер 2:
Ищем ключ массива по значению в ассоциативном массиве php.
Для того, чтобы найти ключ в ассоциативном массиве вам понадобится:
Давайте создадим ассоциативный массив:
Выведем его здесь с помощью print_r^
Array
(
[1 ячейка] => 15
[2 ячейка] => 12
[3 ячейка] => искомое значение
[4 ячейка] => слово
)
Поступаем аналогично, что и в предыдущем пункте, используем "array_search":
Выведем с помощью echo:
Соберем весь код:
Код нахождения ключа по значению в ассоциативном массиве:
Соберем весь код "нахождения ключа по значению в ассоциативном массиве" вместе:
<?
$второй_массив = array ("1 ячейка" => 15, "2 ячейка" => 12 , "3 ячейка" => "искомое значение" , "4 ячейка" => "слово");
$key_2 = array_search('искомое значение', $второй_массив );
echo $key_2 ;
?>
Результат поиска ключа по значению в ассоциативном массиве:
Разместим выше приведенный код поиска ключа прямо здесь:
Ищем ключ массива по значению в ассоциативном массиве второго уровня php.
Предположим, что вам нужно найти ключ по значению в ассоциативном двух уровневом массиве, например таком:
Array
(
[Иванов] => Array
(
[Саша] => Array
(
[рост] => 198
)
)
[Петров] => Array
(
[Вася] => Array
(
[рост] => 198
)
[Саша] => Array
(
[рост] => 178
)
)
)
Здесь, при выводе немного непонятная структура массива, вот так он выглядит в коде:
$третий_массив['Иванов']['Саша']['рост'] = '198';
$третий_массив['Петров']['Вася']['рост'] = '198';
$третий_массив['Петров']['Саша']['рост'] = '178';
Код поиска ключа по значению в двухуровневом массиве.
Здесь применен массив foreach и только на последнем этапе, когда мы добрались до одномерного массива используем "array_search"
<?
foreach ($третий_массив as $key => $value)
{
foreach ($value as $key2 => $value1)
{
if(array_search('198', $value1 ))
{
$key_3 = array_search('198', $value1 );
$позиция = '$третий_массив['.$key.']['.$key2.']['.$key_3.']';
}
}
}
echo $key_3;
echo $позиция ;
?>
Результат поиска ключа по значению в двухуровневом массиве.
Обращаю ваше внимание, что мы получили последнее вхождение - как получить первое вхождение ?
Ищем ключ массива по значению в ассоциативном массиве второго уровня php №2.
Предположим, что в этом же массиве вам потребовалось получить первое вхождение занчения и получить его ключ!
Для этого вма понадобится:
Теория и код из предыдущего пункта. Только немного изменим приведенный код:
Изменим названия переменных, которые будем выводить, чтобы они не перекрывали друг друга.
При первом нахождении значения используем break - здесь также обращаю ваше внимание на breakСоберем весь код:
Код поиска ключа массива по значению в ассоциативном массиве второго уровня php №2.
Для того, чтобы получить первое вхождение значения и получения ключа вам потребуется
<?
foreach ($третий_массив as $key => $value)
{
foreach ($value as $key2 => $value1)
{
if(array_search('198', $value1 ))
{
$key_4 = array_search('198', $value1 );
$позиция_2 = '$третий_массив['.$key.']['.$key2.']['.$key_4.']';
$break=1;
}
}
if($break) break;
}
echo $key_4;
echo $позиция_2 ;
?>
Результат поиска ключа по значению в двухуровневом массиве.
