Created
May 15, 2016 13:35
-
-
Save insideone/4e7f7841bc47c72097d27ede920da29d to your computer and use it in GitHub Desktop.
PHP: array_firstfound
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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