我有以下数组,我试图附加以下("","--")
代码
Array
(
[0] => Array
(
[Name] => Antarctica
)
)
当前JSON输出
[{"Name":"Antarctica"}]
期望的输出
{"":"--","Name":"Antarctica"}]
我尝试过使用以下内容:
$queue = array("Name", "Antarctica");
array_unshift($queue, "", "==");
但它没有返回正确的值。
谢谢
答案 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));