当我执行以下代码时: Code:
<?php
$data = array();
$jim = array('Jim'=>1);
$bob = array('Bob'=>1);
$data['abc'][] = $jim;
$data['abc'][] = $bob;
print_r($data);
?>
我收到以下输出:
Array
(
[abc] => Array
(
[0] => Array
(
[Jim] => 1
)
[1] => Array
(
[Bob] => 1
)
)
)
我期待的是以下输出:
Array
(
[abc] => Array
(
[Jim] => 1
[Bob] => 1
)
)
我怎样才能做到这一点?要重新解释这个问题,如何根据提供的密钥将其保存到单个子阵列?
答案 0 :(得分:5)
$data = array();
$jim = array('Jim'=>1);
$bob = array('Bob'=>1);
$data['abc'] = array_merge($jim, $bob);
print_r($data);
答案 1 :(得分:1)
您正在创建包含阵列($data['abc']
)数组([]
,$jim
)的数组($bob
)
这和写作一样:
$data['abc'][0] = array('jim' => 1);
$data['abc'][1] = array('bob' => 1);
你想要的可能是:
$data['abc'] = array();
$data['abc'] = array_merge($data['abc'], $jim, $bob);
答案 2 :(得分:0)
Jim和Bob是您自己声明的数组索引,您必须先更改它们
<?php
$data = array();
$data['abc']["Jim"] =1;
$data['abc']["Bob"] = 2;
print_r($data);
?>
<强> Demo 强>