我正在用PHP开发一个OpenSource项目,我需要操作选项数组。
我正在寻找使用函数来做这些事情,这里是我正在尝试做的例子。 我不知道这是否是管理这个问题的正确方法,也许还有一些其他选择,或者可能是已经制作的类可以处理所有这些,我对解决方案持开放态度。
// Define an array of options
$arr = array(
'options' => array(
'levelA' => array(
'property1' => 'value1',
'property2' => 'value2',
),
'levelB' => array(
'property3' => 'value3',
'property4' => 'value4',
),
'levelC' => array(
'property5' => 'value5',
'property6' => 'value6',
)
)
)
// Remove the property5 in levelC in options.
$arr = array_delete_value($arr, array('options', 'levelC', 'property5'));
// Result array
$arr = array(
'options' => array(
'levelA' => array(
'property1' => 'value1',
'property2' => 'value2',
),
'levelB' => array(
'property3' => 'value3',
'property4' => 'value4',
),
'levelC' => array(
'property6' => 'value6',
)
)
)
// Delete the levelB in options.
$arr = array_delete_value($arr, array('options', 'levelB'));
// Result array
$arr = array(
'options' => array(
'levelA' => array(
'property1' => 'value1',
'property2' => 'value2',
),
'levelC' => array(
'property6' => 'value6',
)
)
)
// Set a new value in the options in options -> levelD -> property7. Create it if needed.
$arr = array_set_value(array('options', 'levelD', 'property7'), 'value7');
// Result array
$arr = array(
'options' => array(
'levelA' => array(
'property1' => 'value1',
'property2' => 'value2',
),
'levelC' => array(
'property6' => 'value6',
),
'levelD' => array(
'property7' => 'value7',
)
)
)
// Create an array of options in options -> levelD
$arr = array_set_value(array('options', 'levelD'), array('property8' => 'value8', 'property9' => 'value9'));
// Result array
$arr = array(
'options' => array(
'levelA' => array(
'property1' => 'value1',
'property2' => 'value2',
),
'levelC' => array(
'property6' => 'value6',
),
'levelD' => array(
'property8' => 'value8',
'property9' => 'value9',
)
)
)
答案 0 :(得分:1)
您可以从执行unset的数组中删除值,即
unset($arr['options']['levelC']['property5']);
您也可以通过
简单地将内容添加到php数组中$arr['options']['levelD'] = array('property8' => 'value8', 'property9' => 'value9');
我建议更多地了解Arrays in PHP可以做些什么。
如果你不需要,不要重新发明轮子。我不确定为什么你需要一个类来创建这些。也许你可以在评论中澄清一下?无论如何,如果你必须编写自己的类来执行更复杂的任务,你至少可以利用我上面指定的函数。
答案 1 :(得分:0)