2015-09-18 2 views
0
<?php 
function multi_array_search($search_for, $search_in) { 
    foreach ($search_in as $element) { 
     if (($element === $search_for) || (is_array($element) && multi_array_search($search_for, $element))){ 
      return true; 
     } 
    } 
    return false; 
} 
$arr = array("2014", array("January", "February", "March"), "2015", array("Monday", "Tuesday")); 
echo multi_array_search("Tuesday", $arr) ? 'Found' : 'Not found'; 
?> 

В приведенной выше коде В multi_array_search("Tuesday",$arr); мы проходим первый параметр является value и второй параметром является array, Но мой запрос, что мы проходим первый параметр представляет собой набор значений ,Найти значение массива в пределах многомерного массива

т.е. мы принимаем $array=array("2015","Tuesday","March"); Как это и когда мы нашли значения соответствия, то возвращение «Found» иначе вернуть «Не найден» также значение может быть чувствительным к регистру,

+0

Просто заменив ', если (($ элемент === $ search_for) ...' 'с, если (in_array ($ элемент, $ search_for) ...' должна работать. –

+0

возможный дубликат из [в \ _array() и многомерный массив] (http://stackoverflow.com/questions/4128323/in-array-and-multidimensional-array) – Viral

+0

мы получаем требуемый O/P, – Gopal

ответ

0

Преобразование аргументов в нижний регистр с помощью strtolower() Функция PHP делает эту работу. Код, который я придумал, приведен ниже, я надеюсь, он вам поможет.

<?php 
function multi_array_search($search_for, $search_in) { 
$search_for=strtolower($search_for); 
foreach ($search_in as $element) { 
    if(!is_array($element)) 
    $element=strtolower($element); 
    if (($element === $search_for) || (is_array($element) && multi_array_search($search_for, $element))){ 
     return true; 
    } 
} 
return false; 
} 
$arr = array("2014", array("January", "February", "March"), "2015", array("Monday", "Tuesday")); 
echo multi_array_search("TUESDAY", $arr) ? 'Found' : 'Not found'; 
?> 
+0

Спасибо за ваши ценные поддержка – Gopal

Смежные вопросы