Emi*_*mil 5 php associative-array
我正在尝试动态地在PHP中构建一个关联数组,而不是让我的策略正确.基本上,我想在数组结构中的某个深度插入一个值,例如:
$array['first']['second']['third'] = $val;
Run Code Online (Sandbox Code Playgroud)
现在,问题是,我不确定该深度是否可用,如果不是,我想为每个级别创建键(和数组),最后将值插入正确的级别.
由于我在我的代码中做了很多这样的事情,我厌倦了做一大堆"array_key_exists",所以我想做一个为我构建数组的函数,给出一个关键字列表.任何有关良好战略的帮助都表示赞赏.我确信有一种非常简单的方法,我只是没有得到它......
如果你这样做,php不会责怪你
$array['first']['second']['third'] = $val;
print_r($array);
Run Code Online (Sandbox Code Playgroud)
如果您不希望您的密钥被硬编码,这是一个灵活的解决方案
/// locate or create element by $path and set its value to $value
/// $path is either an array of keys, or a delimited string
function array_set(&$a, $path, $value) {
if(!is_array($path))
$path = explode($path[0], substr($path, 1));
$key = array_pop($path);
foreach($path as $k) {
if(!isset($a[$k]))
$a[$k] = array();
$a = &$a[$k];
}
$a[$key ? $key : count($a)] = $value;
}
// example:
$x = array();
array_set($x, "/foo/bar/baz", 123);
array_set($x, "/foo/bar/quux", 456);
array_set($x, array('foo', 'bah'), 789);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10330 次 |
| 最近记录: |