首页 > 解决方案 > 为关联数组中的器官赋予价值 - php

问题描述

我尝试将关联数组中的器官变成数组,但它以这种方式失败:

$arr = array('1' => '2','10' => '2');

$arr['1']['10'] = '3';

var_dump($arr);

$arr['1']['5'] = array('4' => 5);

var_dump($arr);

结果:

array(2) {
  [1]=>
  string(11) "2         3"
  [10]=>
  string(1) "2"
}
array(2) {
  [1]=>
  string(11) "2    A    3"
  [10]=>
  string(1) "2"
}

有可能吗?

标签: phparrays

解决方案


问题在于注释行:

<?php
$arr = array('1' => '2','10' => '2');
# BAD
$arr['1']['10'] = '3';

在您调用此行时,$arr['1']它是一个字符串,而不是一个数组。所以如果你想把它当作一个数组,那么你需要这样声明它:

<?php
$arr = array('1' => '2','10' => '2');
$arr['1'] = [];
$arr['1']['10'] = '3';

但是,这可能不是您想要的,因为您刚刚破坏了那里的先前值(String 2)。


推荐阅读