найти значения в массиве php в последовательности - PullRequest
0 голосов
/ 04 декабря 2018

Я работаю с массивом, построенным из ввода из формы.Мне нужно найти, если два значения в массиве в последовательности.Если я использую in_array, он возвращает true, ища одно или другое значение, но мне нужно выяснить, находятся ли они в последовательности, так как есть вероятность, что два значения находятся в массиве.Пример:

 [0] => location [1] => Riverside [2] => location [3] => Other [4] => subcat1 [5] => Motorcycle [6] => subcat2 [7] => Other.

Если я использую array_search или in_array, в поисках «Other» он возвращает true и останавливается на первом найденном значении, но мне нужно знать, следует ли сразу за значением subcat2 значение «Other»в массиве.Использование значений повторно заполняет форму, и, поскольку «Другое» находится в массиве дважды (или более), он отмечает все параметры «Другое» в форме.Я хочу захватить пары значений.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018
$found='false';
$value1 = 'subcat2';
$value2 = 'Other';
     foreach($local_array as $key=>$value){
           if($value1==$value && $local_array[$key+1]==$value2){$found='Yes';}
     }
echo $found;

Это решение работает и служит цели

0 голосов
/ 04 декабря 2018

Вы можете создать функцию.

function findpair($initial_array,$value1,$value2){
 $found=false;
 foreach($initial_array as $key=>$value){
  if(isset($initial_array[$key+1])){
   if($value1==$value and $initial_array[$key+1]==$value2){$found=true;}
  }
 }
 return $found;
}
findpair($array,'Other','subcat2');

Вы можете изменить $ found, чтобы вернуть ключ первого найденного значения / пары, если хотите.Это просто возвращает TRUE или FALSE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...