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

PHP Prepend two elements to associative array

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

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

)

当前JSON输出

[{"Name":"Antarctica"}]

期望的输出

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

我试过使用以下方法:

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

但它没有返回正确的值。

谢谢

试试这个:

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

编辑

糟糕,刚刚注意到 OP 想要 Prepend,而不是 Append。他的语法是正确的,但我们在他的 unshift 中缺少 array("" => "--")

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

$queue = array("Name" => "Antarctica");
$prepend = array("" => "--");
$queue = $prepend + $queue;

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

PHP 数组到 JSON 的 t运行 转换生成一个 字典 除非数组只有数字键,连续的,开始从 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]));

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

你可以试试这个:

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