【问题标题】:Dynamic add element to multidimensional associative array动态添加元素到多维关联数组
【发布时间】:2012-08-31 16:48:06
【问题描述】:

我正在尝试将新元素插入到多维关联数组中,例如

$arr=array('ID' => 123,
           'name' => 'rock',
           'accountID' => 'u0777f7f-77f7-4d2e-9h7c-ea775d052785',
           'admin' => array  (
                       'main' => array (
                                   'stats' =>'', 
                                   'emails' =>'', 
                                   'calls' => ''
                                )
                         )
            );

 $list='';
 $list .="['admin']['main']['hello']";

 $arr{$list}='world';
 print_r($arr);

但是新元素没有被添加到 ['admin']['main'],而是像

这样创建新的数组元素
Array
(
    [ID] => 123
    [name] => rock
    [accountID] => u0777f7f-77f7-4d2e-9h7c-ea775d052785
    [admin] => Array
        (
            [main] => Array
                (
                    [stats] => 
                    [emails] => 
                    [calls] => 
                )

        )
   [['admin']['main']['hello']] => world
)

请帮我解决它。 谢谢

【问题讨论】:

  • 你需要这样解决吗?
  • $arr['admin']['main']['hello'] = 'world'; 呢?
  • 为什么要将数组索引放入一个字符串,然后取消引用该字符串?
  • 我将动态添加/插入元素作为数组或数组中的数组。我不知道是否需要将元素添加到现有数组中,如 [admin][main][hello] 或新的 [hello]=>'world'

标签: php arrays dynamic add associative


【解决方案1】:

这是你应该做的:

$arr['admin']['main']['hello'] = > 'world';

$main = $arr['admin']['main'];
$main['hello'] = 'world';

【讨论】:

  • 感谢您的回答。如果我想在 $arr 中添加新数组,比如 Array ( [ID] => 123 [name] => rock [accountID] => u0777f7f-77f7-4d2e-9h7c-ea775d052785 [admin] => Array ( [main ] => 数组 ( [stats] => [emails] => [calls] => ) ) [hello] => world )
【解决方案2】:
[['admin']['main']['hello']] => world

这是因为 STRING 考虑了 $list

尝试更改此行

$list='';
$list .="['admin']['main']['hello']"; 
$arr{$list}='world';
print_r($arr);

$list = array();
$list['main']['hello'] = "world";
$arr['admin'] = $list;
print_r($arr);

魔法将被揭示。哈哈


如果你想要 $arr 像:

Array ( 
     [ID] => 123 
     [name] => rock 
     [accountID] => u0777f7f-77f7-4d2e-9h7c-ea775d052785 
     [admin] => Array ( 
                    [main] => Array ( 
                         [stats] => 
                         [emails] => 
                         [calls] => 
                                    ) 
                       ) 
     [hello] => world 
      )

你可以写逻辑

$arr = array();

$arr['ID'] = 123;
$arr['name'] = "rock";
$arr['accountID'] = "u0777f7f-77f7-4d2e-9h7c-ea775d052785";

$arr['admin']['main']['stats'] = "complete";
$arr['admin']['main']['emails'] = "example@email.com";
$arr['admin']['main']['calls'] = "yourfunction";
$arr['hello'] = "world";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    相关资源
    最近更新 更多