PHP: get array value as in Python? PHP: get array value as in Python? php php

PHP: get array value as in Python?


isset() is typically faster than array_key_exists(). The parameter $default is initialized to an empty string if omitted.

function getItem($array, $key, $default = "") {  return isset($array[$key]) ? $array[$key] : $default;}// Call as$array = array("abc" => 123, "def" => 455);echo getItem($array, "xyz", "not here");// "not here"

However, if an array key exists but has a NULL value, isset() won't behave the way you expect, as it will treat the NULL as though it doesn't exist and return $default. If you expect NULLs in the array, you must use array_key_exists() instead.

function getItem($array, $key, $default = "") {  return array_key_exists($key, $array) ? $array[$key] : $default;}


Not quite. This should behave the same.

function GetItem($Arr, $Key, $Default = ''){    if (array_key_exists($Key, $Arr)) {        $res = $Arr[$Key];    } else {        $res = $Default;    }    return $res;}

The first line in your function is useless, as every code path results in $res being overwritten. The trick is to make the $Default parameter optional as above.

Keep in mind that using array_key_exists() can cause significant slowdowns, especially on large arrays. An alternative:

function GetItem($Arr, $Key, $Default = '') {  return isset($Arr[$Key]) ? $Arr[$Key] : $Default;}


There is no base function to do that in my mind.

Your GetItem is a good way to do what you wanna do :)