php多维数组提供三个级别的深度而不是两个

时间:2013-08-30 13:35:13

标签: php arrays

当我执行以下代码时: 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
        )

)

我怎样才能做到这一点?要重新解释这个问题,如何根据提供的密钥将其保存到单个子阵列?

3 个答案:

答案 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