如何在PHP的数组开头插入一个项目?

时间:2009-11-16 02:17:18

标签: php arrays

我知道如何将它插入到最后:

$arr[] = $item;

但是如何将它插入到开头?

10 个答案:

答案 0 :(得分:218)

使用array_unshift($array, $item);

$arr = array('item2', 'item3', 'item4');
array_unshift($arr , 'item1');
print_r($arr);

会给你

Array
(
 [0] => item1
 [1] => item2
 [2] => item3
 [3] => item4
)

答案 1 :(得分:80)

如果是关联数组或编号数组,您不想更改数组键:

$firstItem = array('foo' => 'bar');

$arr = $firstItem + $arr;

array_merge不起作用,因为它总是重新索引数组。

答案 2 :(得分:6)

使用函数array_unshift

答案 3 :(得分:3)

这将有助于

http://www.w3schools.com/php/func_array_unshift.asp

array_unshift();

答案 4 :(得分:3)

使用 array_unshift()将第一个元素插入数组中。

用户 array_shift()删除数组的第一个元素。

答案 5 :(得分:3)

对于关联数组,您可以只使用merge。

$arr = array('item2', 'item3', 'item4');
$arr = array_merge(array('item1'), $arr)

答案 6 :(得分:2)

或者您可以使用临时数组,如果要在循环中更改它,则删除实际数组:

$array = array(0 => 'a', 1 => 'b', 2 => 'c');
$temp_array = $array[1];

unset($array[1]);
array_unshift($array , $temp_array);

输出将是:

array(0 => 'b', 1 => 'a', 2 => 'c')

如果在循环中进行此操作,则应在将项目附加到数组后清除$temp_array

答案 7 :(得分:2)

使用字符串/自定义索引键

在关联数组的开头插入一个项目
<?php

$array = ['keyOne'=>'valueOne', 'keyTwo'=>'valueTwo'];

$array = array_reverse($array);

$array['newKey'] = 'newValue';

$array = array_reverse($array);

<强> RESULT

[
  'newKey' => 'newValue',
  'keyOne' => 'valueOne',
  'keyTwo' => 'valueTwo'
]

答案 8 :(得分:0)

使用自定义索引:

$arr=array("a"=>"one", "b"=>"two");
    $arr=array("c"=>"three", "d"=>"four").$arr;

    print_r($arr);
    -------------------
    output:
    ----------------
    Array
    (
    [c]=["three"]
    [d]=["four"]
    [a]=["two"]
    [b]=["one"]
    )

答案 9 :(得分:0)

有两种解决方案:

  1. 如果你有对你很重要的键的数组
$new = ['RLG' => array(1,2,3)];
$array = ['s' => array(2,3), 'l' => [], 'o' => [], 'e' => []];

$arrayWithNewAddedItem = array_merge($new, $array);
  1. 如果你有一个没有任何键的数组。
array_unshift(array, value1);