Edit report at https://bugs.php.net/bug.php?id=64818&edit=1
ID: 64818 Comment by: mario dot dweller at seznam dot cz Reported by: mario dot dweller at seznam dot cz Summary: array_get Status: Wont fix Type: Feature/Change Request Package: Arrays related PHP Version: Irrelevant Block user comment: N Private report: N New Comment: And if null is considered as a valid value and the value is deep inside the array... $d = isset($array['a']['b']['c']) && array_key_exists('d', $array['a']['b']['c']) ? $array['a']['b']['c']['d'] : 'default'; or just array_get($array, ['a', 'b', 'c', 'd'], 'default'); Previous Comments: ------------------------------------------------------------------------ [2013-05-12 11:26:01] mario dot dweller at seznam dot cz In the case you have those keys in a variable like $keys = ['key1', 'key2'] you can access it only using a loop. That's one of the purpose of the function. BTW what looks better and what is more readable? $a = isset($array['a']) ? $array['a'] : null; $b = array_key_exists('b', $array) ? $array['b'] : 'default'; or $a = array_get($array, 'a'); $b = array_get($array, 'b', 'default'); ? ------------------------------------------------------------------------ [2013-05-12 11:13:28] paj...@php.net @niki Arg right. But still should not be added, zero value added here. ------------------------------------------------------------------------ [2013-05-12 10:56:45] ni...@php.net @Pierre: isset($array['key1']['key2']) ?: NULL is the same as isset($array['key1']['key2']) ? isset($array['key1']['key2']) : NULL is the same as "true" if the key exists, "null" if it doesn't. That's not what this req is about. ------------------------------------------------------------------------ [2013-05-12 10:53:39] paj...@php.net $val = isset($array['key1']['key2']) ?: NULL; We already have an operator for that ($v = (iftrue) ?: defaultvalue). Operators are also much more efficient than a function call. ------------------------------------------------------------------------ [2013-05-12 10:37:02] mario dot dweller at seznam dot cz fl at nyggen dot com: I know this is possible. But i don't like suppressing warning in this situation. And @$array['key1']['key2'] ?: 'Key not found' And the valid value could be false/0/""/"0"/[]. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=64818 -- Edit this bug report at https://bugs.php.net/bug.php?id=64818&edit=1