【问题标题】:Set multidimensional array in PHP在 PHP 中设置多维数组
【发布时间】:2017-05-23 12:17:26
【问题描述】:

我有字符串 $s = 'controller/front/home';

价值 $v = "some value";

和数组 $a = [];

制作这样的多维数组的最佳方法是什么?

$a['controller']['front']['home'] = $v;

[编辑]

我不知道字符串 $s 可以有多少个部分(由 / 分隔),因此通过分解部分手动构建数组是我会考虑的最后一个选项。

【问题讨论】:

  • 你到底想做什么?也展示你的代码努力....
  • $a = $v; foreach (array_reverse(explode('/', $s)) as $i) $a = array($i => $a);
  • 这个问题和你同题stackoverflow.com/questions/9627252/…

标签: php


【解决方案1】:

我在进行了一次小型研究后发现了这一点:

通过这篇文章,我已经将其改编为以下内容

$path = 'controller/front/home';
$value = 'some value';

$parts = explode('/', $path);

$arrayPath = [];

$temp = &$arrayPath;
foreach($parts as $part) {
    if(!isset($temp[$part])) {
        $temp[$part] = [];
    }
    $temp = &$temp[$part];
}
$temp = $value;

var_dump($arrayPath);

打印:

array (size=1)
  'controller' => 
    array (size=1)
      'front' => 
        array (size=1)
          'home' => string 'some value' (length=10)

【讨论】:

    【解决方案2】:
    $a = $v; foreach (array_reverse(explode('/', $s)) as $i) $a = array($i => $a);
    

    【讨论】:

      【解决方案3】:

      你可以这样做

         $array = explode('/', $s);
      

      然后:

        $a[$array[0]][$array[1]][$array[2]] = $v;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-17
        • 2010-10-22
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 2022-01-08
        • 1970-01-01
        相关资源
        最近更新 更多