如果找不到密钥,则将关键字添加到关联数组

时间:2012-01-10 20:25:43

标签: php

给出像这样的PHP关联数组:

$a = array(
    'color' => 'red',
    'taste' => 'sweet',
    'shape' => 'round',
    'name'  => 'apple'
);

我想搜索一个密钥,如果没有找到,我想添加'myKey'=> 0。这是做这种事的最好方法吗?

4 个答案:

答案 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;
}
?>