1

当我执行下面的代码时: 代码

<?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
        )

)

我怎样才能做到这一点?重新表述这个问题,如何根据提供的键将其保存到单个子数组中?

4

3 回答 3

5
$data = array();
$jim = array('Jim'=>1);
$bob = array('Bob'=>1);
$data['abc'] = array_merge($jim, $bob);

print_r($data);
于 2013-08-30T13:37:51.883 回答
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);
于 2013-08-30T13:38:15.100 回答
0

Jim 和 Bob 是您自己声明的数组索引,您必须先更改它们

<?php

$data = array();
$data['abc']["Jim"] =1;
$data['abc']["Bob"] = 2;

print_r($data);
?>

演示

于 2013-08-30T13:38:36.803 回答