当我执行下面的代码时:法典:
<?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
)
)
我怎样才能做到这一点? 换个问题,我怎样才能根据提供的键将其保留为单个子数组?
$data = array();
$jim = array('Jim'=>1);
$bob = array('Bob'=>1);
$data['abc'] = array_merge($jim, $bob);
print_r($data);
你正在创建数组 ( $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);
Jim 和 Bob 是你自己声明的数组索引,你必须先更改它们
<?php
$data = array();
$data['abc']["Jim"] =1;
$data['abc']["Bob"] = 2;
print_r($data);
?>
演示