PHP массив найти два числа одно за другим - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть отсортированный массив с этими stop_ids.

1, 6, 13, 18, 31,

Я просто хочу найти указанное первое значение поиска (6) перед вторым заданным значением (31). Я попробовал что-то подобное. Это означает, что порядок поиска должен быть сначала (6), затем (13), а не (13), а затем (6).

foreach ($parent_array as $key => $value) {
    $k = $key;
    sort($routes); //another array with above values(stop_ids)
    $st = 0;
    foreach ($routes as $key => $value) {
       if($st == 1){
         unset($parent_array[$k]);
         break;    
       }
       elseif($value->stop_id == 31){
         $st = 1;
         continue;
       }
    }
}
return $parent_array;

Я могу предоставить два значения. Здесь я использовал только второе значение (31). Любая помощь ???

1 Ответ

0 голосов
/ 15 сентября 2018

Получить ключи массива, под которым находится каждое число, и сравнить эти ключи:

function firstNumberFirst($array, $first_number, $second_number) 
{
    return array_search($first_number, $array) < array_search($second_number, $array);
}

$a = [1, 6, 13, 18, 31];     
var_dump(
    firstNumberFirst($a, 6, 13),
    firstNumberFirst($a, 6, 18),
    firstNumberFirst($a, 13, 6)
);

Если массив не проиндексирован с нуля - сначала примените array_values.

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