Фильтр массива php

173
21 декабря 2018, 13:20

Есть список матчей, выводится из массива. При клике на матч в $_GET запрос уходит ID матча. Мне надо вывести только этот матч, то есть отфильтровать массив, и оставить только один матч. Сейчас я делаю так, но думаю такой метод не очень хороший

if(isset($_GET['match'])) {
    $matches = getMatches();
    foreach ($matches as $match) { 
        if ($match['id'] == $_GET['match']) {
            $currentMatch = $match;
        }
    }
}
Answer 1

Сам метод поиска нужного элемента в массиве у вас в принципе обычен. Другой вопрос в том, что если данное действие потенциально будет повторяться, то каждый раз писать подобное - не лучшая затея.

Наиболее простой способ для такого поиска, да и в целом, сделать так, чтобы ключами возвращаемого в getMatches массива были id, тогда искать ничего и не понадобится.

Модифицируйте вашу функцию getMatches

function getMatches(){
    .....
    return $result;
}

например, как-то так

function getMatches(){
   ...... 
   return array_combine(array_column($result,'id'), $result);
}

и сможете использовать, условно, так:

if(isset($_GET['match'])){
     $matches = getMatches();
     $current = $matches[ $_GET['match'] ] ;
}

Второй вариант - определите функцию getMatchById($id) или нечто подобное, в которой отфильтруете нужный матч и вернете его.

 function getMatchById($id){
     $matches = getMatchs();
     foreach($matches as $m){
          if( $m['id'] == $id) return $m;
     }
     return null;
 } 
READ ALSO
Хранение ссылки в штрих коде

Хранение ссылки в штрих коде

Подскажите, возможно ли в штрих коде типа С128 хранить ссылки? Ибо при попытке добавить что-то, что не является числом, вылетает ошибкаИспользую...

215
laravel непростой запрос в бд

laravel непростой запрос в бд

Всем приветЕсть таблица post в котором поле id , user , content , image

205
json_decode иполучние значений из API

json_decode иполучние значений из API

как получить значение вот из такого запроса https://apicoinmarketcap

200
Связать React + PHP

Связать React + PHP

Подскажите, как связать файлы, полученные из create-react-app npm run build и файл PHP?

184