PHP将两个元素添加到关联数组中

时间:2015-01-09 20:32:34

标签: php arrays json

我有以下数组,我试图附加以下("","--")代码

Array
(
    [0] => Array
        (
            [Name] => Antarctica
        )

)

当前JSON输出

[{"Name":"Antarctica"}]

期望的输出

{"":"--","Name":"Antarctica"}]

我尝试过使用以下内容:

$queue = array("Name", "Antarctica");
array_unshift($queue, "", "==");

但它没有返回正确的值。

谢谢

5 个答案:

答案 0 :(得分:4)

您可以通过将原始数组添加到包含您希望添加的值的数组

来进行前置
$queue = array("Name" => "Antarctica");
$prepend = array("" => "--");
$queue = $prepend + $queue;

您应该知道,对于具有相同键的值,前置值将覆盖原始值。

答案 1 :(得分:2)

将PHP Array转换为JSON会生成字典,除非该数组只有连续的数字键,从0开始。

所以在这种情况下你可以试试

$queue = array( 0 => array( "Name" => "Antarctica" ) );

$queue[0][""] = "--";

print json_encode($queue);

如果你想颠倒元素的顺序(这不是真正需要的,因为字典是关联的,无序的 - 任何依赖于以某种特定方式排序的代码都可能被破坏),您可以在$queue[0]上使用排序功能,也可以构建不同的数组:

$newqueue = array(array("" => "--"));
$newqueue[0] += $queue[0];

相当于

$newqueue = array(array_merge(array("" => "--"), $queue[0]));

如果需要合并大型数组,则最后一种方法非常有用。如果您只需要微调数组,第一种方法可能是最好的。但我没有进行过任何性能测试。

答案 2 :(得分:1)

试试这个:

$queue = array(array("Name" => "Antarctica")); // Makes it multidimensional 
array_unshift($queue, array("" => "--"));

修改

糟糕,只是注意到OP想要 Prepend ,而不是追加。他的语法是正确的,但我们错过了array("" => "--")的非移位。

答案 3 :(得分:0)

你可以试试这个:

$queue = array("Name" => "Antarctica");
$result = array_merge(array("" => "=="), $queue);

答案 4 :(得分:0)

var_dump(array_merge(array(""=>"--"), $arr));