php可选的关联数组值

时间:2018-12-16 05:33:44

标签: php arrays

是否有一种跳过数组值的方法或其他任何方法。
我知道,我们可以将其设置为null或''。但是我有很多数组键和很少有值的键。
在下面的数组中,只需要Iconpicker一个值,将所有其他键设置为null或将一个空数组设置为一项艰巨的任务。

不是将所有键设置为空

$array =  array(
        'active'    => null,
        'required'  => null,
        'show_label'=> null,
        'label_text'=> null,
        'default'   => null,
        'iconpicker'=> array(
            'args' => '11'
        ),
        'placeholder'=> null,
        'min_char'  => null,
        'max_char'  => null,
    ),

我想保持简单

$array = array(
    'active',
    'required',
    'show_label',
    'label_text',
    'default',
    'iconpicker' => array(
        'other' => 'test',
    ),
    'placeholder',
    'min_char',
    'max_char'
),

这只是一个示例,还有更多的键。我将此数组作为函数的参数进行处理,因此它应该是动态的。

    foreach ( $array as $key => $value ) {
        generate_settings( $key, $value )
    }

2 个答案:

答案 0 :(得分:0)

在下面尝试此代码,它将删除除“ iconpicker”键值对之外的所有其他键

 $array = array(
        'active',
        'required',
        'show_label',
        'label_text',
        'default',
        'iconpicker' => array(
            'other' => 'test'
        ),
        'placeholder',
        'min_char',
        'max_char'
    );
 print_r(array_intersect_key($array, array('iconpicker' => '')));

答案 1 :(得分:0)

例如,在PHP中定义数组时,不必初始化数组的所有键,您可以执行以下操作:

$a['iconpicker'] = array('other' => 'test');

echo $a['iconpicker']['other'];

然后在代码中稍后执行以下操作:

$a['active'] = null;
$a['key'] = 'value';

现在:

var_dump($a);

会显示:

array(3) {  
    ["iconpicker"]=>  array(1) {
        ["other"]=>  string(4) "test"
    }
    ["active"]=>  NULL
    ["key"]=>  string(3) "val"
}

PHP这样非常动态。只需根据需要添加或删除数组即可。