php - 在 PHP 中从字符串创建无限深的多维数组

标签 php arrays

<分区>

Possible Duplicate:
String with array structure to Array

我有一个字符串“db/yum/user”,我试图将它分解,以便/的每个元素都变成更深的维度。

所以创建数据变量的直接方法是

$config['db']['yum']['user'] = "val";

到目前为止我的尝试:

$config = array();              
  function set_config($key,$value){
global $config;

        //Multi deminsional config
        $multi_configs = explode('/',$key);
        if($multi_configs!==false){
            $build_up = array();
            $c =& $build_up;

            foreach($multi_configs as $multi_config){
                $c[$multi_config] = array();
                $c     =& $c[$multi_config];
            }
            //$c = $value;
            array_merge($config,$c);
            return;
        }


        $config[$key] = $value;
    }
               set_config('db/yum/user','val');
               set_config('db/yum/server','val2');
                //etc,etc,etc, this was modified to make more sense in this context.

最佳答案

这可能是您正在寻找的:

#!/usr/bin/php
<?php

$config = array();

function set_config($key, $value) {
  global $config;

  if (FALSE=== ($levels=explode('/',$key)))
    return;

  $pointer = &$config;
  for ($i=0; $i<sizeof($levels); $i++) {
    if (!isset($pointer[$levels[$i]]))
      $pointer[$levels[$i]]=array();
    $pointer=&$pointer[$levels[$i]];
  } // for

  $pointer=$value;
} // set_config

set_config('db/yum/user','val');
set_config('db/yum/server','val2');

print_r($config);

?>

输出是:

Array
(
    [db] => Array
        (
            [yum] => Array
                (
                    [user] => val
                    [server] => val2
                )

        )

)

关于php - 在 PHP 中从字符串创建无限深的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13308968/

相关文章:

php - 使用javascript设置 session 变量

php - 如何从aws s3存储桶访问文件?

php - 依赖下拉列表显示值 ID,而不是在提交后显示名称

PHP-Dom 处理 : Code-review of a little Parser-programme

php - 如何将 PHP 数组插入 SQL 数据库

python - 在 Matlab 中是否有等效于 Python 的列表和附加功能?

php - 用需要相互引用的记录填充两个表的最佳方法是什么?

c# - PHP 数组到 C# 字符串

c++ - 如何为自定义数组类创建一个构造函数,该构造函数可以接受任意数量的参数,直到数组的大小?

javascript - 从 Rails Controller 将字符串数组传递给 javascript 时格式错误