Поиск по многомерному массиву

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 20 сентября 2015 в 09:56
Есть массив:
  1. [rules] => Array
  2. (
  3. [0] => Array
  4. (
  5. [0] => required
  6. )
  7.  
  8. [1] => Array
  9. (
  10. [0] => email
  11. )
  12. )
  13.  
надо искать, есть ли в массиве значение email

Нашел вот такое решение:
  1. if(array_search(array(0 => 'email'), $field->rules)){echo 'yes'; }else{echo 'no'}
Но не всегда срабатывает, например когда вот такой массив
  1. [rules] => Array
  2. (
  3. [0] => Array
  4. (
  5. [0] => email
  6. )
  7.  
  8. )
не работает...
Может кто то знает другой способ поиск по массивам?
#2 20 сентября 2015 в 11:03

Но не всегда срабатывает, например когда вот такой массив

Evanescence

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

Документация

Т.е. в вашем случае
  1. if(array_search(array(0 => 'email'), $field->rules) !== false) { echo 'yes'; } else { echo 'no'; }

Может кто то знает другой способ поиск по массивам?

Evanescence
php.net/manual/ru/control-structures.foreach.php
#3 20 сентября 2015 в 14:34

Т.е. в вашем случае
Код PHP:
if(array_search(array(0 => 'email'), $field->rules) !== false) { echo 'yes'; } else { echo 'no'; }

Fuze
Спасибо, работает
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.