将数据插入到其他数组中指定的偏移量的数组中

时间:2016-06-09 19:44:17

标签: php arrays

我有一些数组即:。

$arr = [
    'a1' => [
        'a2' => []
    ]

];

我还有一系列索引,如:

$index = ['a1', 'a2', 'a3'];

现在我想在$arr中插入一些值,在索引"My var"中说一个字符串$arr['a1']['a2']['a3']

如何有效地解决问题? 我有2个解决方案。最简单的是eval(),但我不想跳过这个。第二种解决方案是使用指针。我已经使用了类似的代码:

$arr = [
    'a1' => [
        'a2' => []
    ]
];
$index = ['a1', 'a2', 'a3'];
$value = 'My var';

$content_arr = &$arr;

foreach( $index as $v ){

    if( ! isset( $content_arr[$v] ) ){
        $content_arr[$v] = [];
    }

    $content_arr = &$content_arr[$v];
}

$content_arr = $value;
unset($content_arr); // to clear variable
var_dump($arr); // print my array

我担心的是多指针。在我的示例中,$ arr非常简单,但它会有更多数据,而可能会对性能产生负面影响。

你有更好的(?)解决方案吗?

我发现这有助于检查是否设置了索引数组:https://stackoverflow.com/a/11041473/1736186但是我无法看到这对设置变量有用。

0 个答案:

没有答案