Хранение только определенных значений запроса $ _GET - PullRequest
0 голосов
/ 11 апреля 2019

В настоящее время у меня есть этот код, который хранит все запросы $ _GET:

  $array_name = array();
  foreach ($_GET as $key => $value) {
      $array_name[] = "'%".escape_string($value)."%'";
  }

Моя цель - каким-то образом хранить только определенные значения, если, например, у меня есть 5 разных запросов $ _GET с именами 1,2,3,4 и 5. Я хочу сохранить только 1-3 в этом массиве. Как это возможно?

Ответы [ 4 ]

2 голосов
/ 11 апреля 2019
$array_name = array();
foreach ($_GET as $key => $value) {
  if(in_array($key, array(1, 2, 3)))
    $array_name[] = "'%".escape_string($value)."%'";
  }
}

Это то, что вы ищете?

1 голос
/ 11 апреля 2019

Вы можете получить пересечение массива ключей, которые вы хотите:

foreach(array_intersect_key($_GET, array_flip([1,2,3])) as $value) {
      $array_name[] = "'%".escape_string($value)."%'";
}
0 голосов
/ 11 апреля 2019

Немного другой подход к другим ответам. $keysToStore - это массив ключей, которые вы хотите сохранить.

Затем цикл foreach извлекает эти значения из массива $_GET, а не зацикливает весь массив.

$keysToStore = [1, 2, 3];

$array_name = [];
foreach ( $keysToStore as $key ) {
    $array_name[] = "'%" . escape_string( $_GET[$key] ) . "%'";
}

Редактировать: можно проверить isset внутри цикла, если ключи не проверены в других местах.

$keysToStore = [1, 2, 3];

$array_name = [];
foreach ( $keysToStore as $key ) {
    if ( isset( $_GET[$key] ) ) {
        $array_name[] = "'%" . escape_string( $_GET[$key] ) . "%'";
    }
}
0 голосов
/ 11 апреля 2019

Для этого вам нужно добавить проверку $ key, чтобы $ key имел значение 1, 2 или 3. Вот пример кода:

 $array_name = array();
 foreach ($_GET as $key => $value) {
    if($key == '1' || $key == '2' || $key == '3'){
      $array_name[] = "'%".escape_string($value)."%'";
    }
 }

Или другой пример кода:

 $array_name = array();
 foreach ($_GET as $key => $value) {
     if(in_array($key, array(1, 2, 3))){
      $array_name[] = "'%".escape_string($value)."%'";
    }
 }

Здесь 1, 2 и 3 - это ключ $ _GET. Пример ввода: $ _GET ['1'] = 'Ghazal', $ _GET ['2'] = 'Taimur', $ _GET ['3'] = 'Malik', $ _GET ['4'] = 'Test ', $ _GET [' 5 '] =' Город '

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