Встроенный метод PHP для получения значений массива по списку ключей - PullRequest
3 голосов
/ 16 сентября 2009

У меня есть массив словаря, такой как этот:

  $arr['a']=5;
  $arr['b']=9;
  $arr['as']=56;
  $arr['gbsdfg']=89;

И мне нужен метод, который, учитывая список ключей массива, может получить соответствующие значения массива. Другими словами, я ищу встроенную функцию для следующих методов:

function GetArrayValues($arrDictionary, $arrKeys)
{
  $arrValues=array();
  foreach($arrKeys as $key=>$value)
  {
     $arrValues[]=$arrDictionary[$key]
  }
  return $arrValues;
}

Мне так надоело писать это утомительное преобразование, что я должен найти встроенный метод для этого. Есть идеи?

Ответы [ 2 ]

8 голосов
/ 16 сентября 2009
0 голосов
/ 28 сентября 2017

Если у вас есть массив ключей в качестве значений, вы можете использовать array_intersect_key в сочетании с array_flip. Например:

$values = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
$keys   = ['a', 'c'];

array_intersect_key($values, array_flip($keys));
// ['a' => 1, 'c' => 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...