给出像这样的PHP关联数组:
$a = array(
'color' => 'red',
'taste' => 'sweet',
'shape' => 'round',
'name' => 'apple'
);
我想搜索一个密钥,如果没有找到,我想添加'myKey'=> 0。这是做这种事的最好方法吗?
答案 0 :(得分:18)
您正在寻找array_key_exists
功能:
if (!array_key_exists($key, $arr)) {
$arr[$key] = 0;
}
答案 1 :(得分:5)
你有2种方法,如果你确定你的密钥不能有NULL,那么你可以使用ISSET()
if(!isset($a['keychecked'])){
$a['keychecked'] = 0;
}
但是,如果您的阵列中有NULLS。你必须使用longue来编写的array_key_exists(),而不是subset到isset(NULL)== false规则。
if(!array_key_exists('keychecked', $a)){
$a['keychecked'] = 0;
}
答案 2 :(得分:2)
if( !isset($a['myKey'])) $a['mkKey'] = 0;
或者
$a['myKey'] = $a['myKey'] ? $a['myKey'] : 0;
或者
$a['myKey'] = (int) $a['myKey']; // because null as an int is 0
答案 3 :(得分:2)
<?php
$a = array( 'color' => 'red',
'taste' => 'sweet',
'shape' => 'round',
'name' => 'apple');
$key = 'myKey';
if (!array_key_exists($key, $a)) {
$a[$key] = 0;
}
?>