Skip to content

Instantly share code, notes, and snippets.

@insideone
Created May 15, 2016 13:35
Show Gist options
  • Save insideone/4e7f7841bc47c72097d27ede920da29d to your computer and use it in GitHub Desktop.
Save insideone/4e7f7841bc47c72097d27ede920da29d to your computer and use it in GitHub Desktop.
PHP: array_firstfound
<?php
/**
* Ищет в массиве $a значение по ключам заданным
* в $b (с учетом их порядка). Возвращает первый
* элемент по найденному ключу-совпадению
*
* @param array $a Ассоциативный массив по которому ищем
* @param array $b Массив ключей по которым ведется поиск
* @param mixed &$fk Найденный ключ
*/
function array_firstfound($a, $b, $fk = null)
{
$ak = array_keys($a);
// Совпадения в ключах массива $a и массиве $b
// Массив $b приоритетнее, потому что он задаёт приоритет поиска
$arFound = array_intersect($b, $ak);
// В массиве $a нет ключей перечисленных в массиве $b
if ( count($arFound) === 0 ) return null;
// Берем первый ключ
$fk = $arFound[0];
// Возвращаем значение по этому ключу
return $a[$fk];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment