當我們需要在PHP中對數組進行操作時,不可避免地會接觸到數組的“插入”操作。其中一個重要的函數就是array_unshift,它可以在數組的開頭插入一個或多個元素,同時使其他元素的鍵名重新索引。下面我們就來詳細了解一下這個函數。
首先,讓我們看一下array_unshift的語法:
array_unshift ( array &$array , mixed $value1 [, mixed $... ] ) : int
其中,第一個參數$array是要進行操作的目標數組,后面的$value1...則是要插入的元素。返回值為插入后數組的元素個數。
舉個例子:
$fruits = array("apple", "banana"); array_unshift($fruits, "orange", "pear"); print_r($fruits);
輸出結果為:
Array ( [0] =>orange [1] =>pear [2] =>apple [3] =>banana )
可以看到,我們在數組的開頭插入了兩個元素,同時其他元素的鍵名重新索引。
如果我們只插入一個元素,則可以不用寫成數組形式,直接輸入元素的值即可:
$fruits = array("apple", "banana"); array_unshift($fruits, "orange"); print_r($fruits);
輸出結果為:
Array ( [0] =>orange [1] =>apple [2] =>banana )
除了插入元素外,我們還可以插入另一個數組:
$fruits = array("apple", "banana"); $more_fruits = array("orange", "pear"); array_unshift($fruits, ...$more_fruits); print_r($fruits);
輸出結果為:
Array ( [0] =>orange [1] =>pear [2] =>apple [3] =>banana )
注意到這里使用了PHP 5.6及以上版本的可變函數參數。
如果要對多維數組進行操作,則需要使用循環來進行操作:
$fruits = array( array("name" =>"apple", "color" =>"red"), array("name" =>"banana", "color" =>"yellow") ); $new_fruit = array("name" =>"orange", "color" =>"orange"); foreach ($fruits as &$fruit) { array_unshift($fruit, $new_fruit); } print_r($fruits);
輸出結果為:
Array ( [0] =>Array ( [0] =>Array ( [name] =>orange [color] =>orange ) [1] =>Array ( [name] =>apple [color] =>red ) [2] =>Array ( [name] =>banana [color] =>yellow ) ) [1] =>Array ( [0] =>Array ( [name] =>orange [color] =>orange ) [1] =>Array ( [name] =>apple [color] =>red ) [2] =>Array ( [name] =>banana [color] =>yellow ) ) )
可以看到,我們在每個子數組的開頭都插入了一個元素。
最后,需要注意的是,array_unshift會對目標數組進行修改,而沒有返回一個新的數組。如果需要得到一個新的數組,則可以使用array_merge。
總結一下,array_unshift是PHP中對數組進行插入操作的一個重要函數??梢酝ㄟ^在數組的開頭插入一個或多個元素來擴充數組,同時使其他元素的鍵名重新索引。它的語法非常簡單,但需要注意一些細節,比如插入數組和多維數組的操作。
上一篇php array鍵值
下一篇java工廠模式和工廠類