2011-05-17 15 views
1

我有一个像array("id"=>"1","name"=>"NiLL"); assoc的数组,我需要在这个数组中添加第一个元素。我最后的数组必须是这个array("error" => "0", "id"=>"1","name"=>"NiLL");我怎么能做到这一点,没有覆盖数组?如何将相同的元素放在关联数组中的第一个地方,使用php?

+0

对特定顺序的要求看起来很奇特。你没有它可以做吗? – 2011-05-17 20:32:46

+0

按键顺序是任意的,最多按照操作顺序。这就是说,如果你创建了键'id',那么键'name'键的顺序*应该是'id','name'。但是这种行为真的非定义*。 – 2011-05-17 20:34:26

+0

同意 - 使用像地图这样的数组否定了任何排序的需要。 – 2011-05-17 20:34:36

回答

3

只需使用documentation

function array_unshift_assoc(&$arr, $key, $val) 
{ 
    $arr = array_reverse($arr, true); 
    $arr[$key] = $val; 
    $arr = array_reverse($arr, true); 
    return count($arr); 
} 

在这种情况下:

$your_array = array("id"=>"1","name"=>"NiLL"); 
array_unshift_assoc($your_array, 'error', '0'); 
+0

非常感谢,你只是拯救了我的生命^ _^ – NiLL 2011-05-17 20:39:27

+2

有趣的是,PHP有多么好决定谁的生命和有时会死的人。 'if(!isset($ your_array ['error']))die();' – 2011-05-17 20:46:49

+0

@NiLL:不用客气; @watcher:好点! :D – Tadeck 2011-05-17 20:49:28

2

你可以使用array_merge()

array_merge(array("Error" => 0), $other_array); 

你的第一个参数将与键/值数组你想插入你的其他数组。

+1

优雅的解决方案! – 2011-10-18 17:05:34

相关问题