note 117468 deleted from function.array-combine by salathe
| From: | salathe@php.net | Date: | Tue, 23 Jun 2015 18:58:23 +0000 |
| Subject: | note 117468 deleted from function.array-combine by salathe | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-202931@lists.php.net to get a copy of this message | ||
Note Submitter: roquie0 (at) gmail dot com
----
Nullable array, eg:
//$array1 = ['value1', 'value2', 'value3'];
//$array2 = ['foo', 'bar'];
function array_nullable(array $array1, array $array2)
{
$iterable = [$array1, $array2];
$cntArr1 = count($array1);
$cntArr2 = count($array2);
$index = $cntArr1 > $cntArr2 ? 0 : 1;
$tmp = [];
foreach($iterable[$index] as $key => $value)
{
$inversion = $iterable[ (int) ! $index];
if (isset($inversion[$key]))
$tmp[$value] = $inversion[$key];
else
$tmp[$value] = NULL;
}
return $tmp;
}
If $array1 more than $array2 then $array1 uses for keys, otherwise $array2.
/*
echo '1)';
var_dump(array_nullable(['value1', 'value2', 'value3'],
['foo', 'bar']));
echo '2)';
var_dump(array_nullable(['foo', 'bar'], ['value1',
'value2', 'value3']));
output:
1)
array (size=3)
'value1' => string 'foo' (length=3)
'value2' => string 'bar' (length=3)
'value3' => null
2)
array (size=3)
'value1' => string 'foo' (length=3)
'value2' => string 'bar' (length=3)
'value3' => null
*/