Как выполнить поиск в многоуровневых массивах в поисках текста (PHP)

#php #arrays #multidimensional-array

#php #массивы #многомерный массив

Вопрос:

Я хотел бы выполнить поиск в массиве, подобном приведенному ниже, в поисках pair2.php.net — какой был бы наиболее эффективный способ поиска по домену? Оператор foreach с циклическим использованием stripos?

 Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
  

Вот мой рабочий код из предложения первого комментария — был бы другой способ более эффективным?

 $search = 'secureserver.net';

$x='no!';

foreach($result AS $array1)
{
    foreach($array1 AS $array2)
    {
        if(stripos($array2,$search))
        {
            $x='yes!';
        }
    }

}  
echo $x;
  

Комментарии:

1. Вы могли бы использовать вложенный цикл foreach.

2. Всегда ли он будет находиться под $array[$number][‘target’]?

3. Нет, потому что, насколько я знаю, он не всегда будет в MX в DNS. Ищу индикаторы почтового домена, и я полагаю, что некоторые из них будут в записи A, поэтому я думаю, что мне нужно выполнить поиск по всем полям.

Ответ №1:

вы могли бы использовать один цикл for и использовать конструкцию ‘in_array’ в php для поиска значения в массиве :-

in_array( ‘pair2.php.net ‘, $sub_array );