【发布时间】:2012-03-22 06:46:14
【问题描述】:
如果我有一个充满信息的数组,如果键不存在,有什么方法可以默认返回值?
function items() {
return array(
'one' => array(
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
),
'two' => array(
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
),
'three' => array(
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
),
);
}
在我的代码中
$items = items();
echo $items['one']['a']; // 1
但是,如果我给出一个不存在的键,我可以返回一个默认值吗?
$items = items();
echo $items['four']['a']; // DOESN'T EXIST RETURN DEFAULT OF 99
【问题讨论】:
-
php.net/array_key_exists。该手册非常有用。
-
虽然 array_key_exists 可以工作,但它可能会导致大数组或大量检查的性能问题。它遍历整个数组以确保该键存在。或者,isset() 进行一次检查并继续前进。
-
php 需要的是一个数组合并函数,它可以检查存在并获取值或如果为空则获取默认值。