Intereting Posts
Кто-нибудь нашел, что REGEX «\ b» не работает в MYSQL? PHP / mysql: как мне отображать записи, отсортированные по времени и сгруппированные по дате? Запрос Xpath с PHP (возьмите два значения) Получение всех параметров запроса в Symfony 2 PHP ASCII бронированная PGP зашифрованная строка mb_detect_encoding работает неправильно с Windows-1250 (CP1250) PHP: создание PDF-файлов PHP 5.2 Примечание: использование неопределенной константы __DIR__ – предполагается '__DIR__ Разрешить множественный субдомен в laravel без создания поддомена в качестве переменной маршрута? pchart легенда круговой диаграммы и график не коррелируют Убедитесь, что сеанс php получает тот же сеанс оракула при использовании oci_pconnect Правильное слияние с MySQLI | запрос по подготовленным операторам Создайте новый блок в Magento Строка URL-адреса PHP, чтобы избежать кеширования браузера Есть ли способ использовать PHP WebSocket в Heroku ?, кажется, по умолчанию есть только поддержка других технологий

Поиск массива для соответствующей строки

Я ищу, чтобы проверить, существует ли строка в качестве значения массива в массиве, и как мне это сделать с PHP?

Если вы просто хотите узнать, существует ли она, используйте in_array () , например:

$exists = in_array("needle", $haystack); 

Если вы хотите узнать его соответствующий ключ, используйте array_search () , например:

 $key = array_search("needle", $haystack); // will return key for found value, or FALSE if not found 

Вы можете использовать функцию PHP array_search чтобы узнать, существует ли она, или array_search чтобы узнать, где она находится.

Пример:

 $a = array('a'=>'dog', 'b'=>'fish'); in_array('dog', $a); //true in_array('cat', $a); //false array_search('dog', $a); //'a' array_search('cat', $a); //false 

Php inArray ()

Кстати, хотя вы, вероятно, должны использовать либо array_search либо array_search как предлагают эти прекрасные джентльмены, просто чтобы вы знали, как выполнять ручной поиск, если вам когда-либо понадобится сделать это, вы также можете это сделать:

 <?php // $arr is the array to be searched, $needle the string to find. // $found is true if the string is found, false otherwise. $found = false; foreach($arr as $key => $value) { if($value == $needle) { $found = true; break; } } ?> 

Я знаю, что глупо делать ручной поиск, чтобы найти строку – и это так, но вы можете когда-нибудь захотеть делать более сложные вещи с помощью массивов, поэтому хорошо знать, как реально получить каждую пару $ key- $ value ,

Функция array_search выполняет именно то, что вы хотите.

 $index = array_search("string to search for", $array); 

Скажем, у нас есть этот массив:

 <?php $array = array( 1 => 'foo', 2 => 'bar', 3 => 'baz', ); ?> 

Если вы хотите проверить, находится ли элемент «foo» в массиве, вы сделаете это

 <?php if(in_array('foo', $array)) { // in array... }else{ // not in array... } ?> 

Если вы хотите получить индекс массива 'foo', вы должны сделать следующее:

 <?php $key = array_search('foo', $array); ?> 

Кроме того, простым правилом для порядка аргументов в этих функциях является: «игла, затем стог сена»; то, что вы ищете, должно быть первым, и то, что вы смотрите во втором.