- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
/**
* <p>Статический метод размещает все аргументы и ключи по парам.</p> <p>Нечетные аргументы - массивы, четные - ключи, по которым искать в массивах.</p> <p>Ключи могут быть массивами. В этом случае поиск происходит во вложенных массивах. Возвращает первый не пустой элемент пары аргумент/ключ.</p>
*
*
* @param array $arraya массив для анализа
*
* @param array $string Ключи поиска
*
* @param strin $integerk Неограниченные последовательно проверяемые пары массив\ключ
*
* @param integer $mixeda
*
* @return mixed
*
* @static
* @link http://dev.1c-bitrix.ru/api_d7/bitrix/main/type/collection/firstnotempty.php
* @author Bitrix
*/
public static function firstNotEmpty()
{
$argCount = func_num_args();
for ($i = 0; $i < $argCount; $i += 2)
{
$anArray = func_get_arg($i);
$key = func_get_arg($i+1);
if (is_array($key))
{
$current = &$anArray;
$found = true;
foreach ($key as $k)
{
if (!is_array($current) || !array_key_exists($k, $current))
{
$found = false;
break;
}
$current = &$current[$k];
}
if ($found)
{
if (is_array($current) || is_object($current) || $current != "")
return $current;
}
}
elseif (is_array($anArray) && array_key_exists($key, $anArray))
{
if (is_array($anArray[$key]) || is_object($anArray[$key]) || $anArray[$key] != "")
return $anArray[$key];
}
}
return "";
}