2012-08-26 27 views
0

我試着用array_push(),但是我得到了致命錯誤。在PHP中添加新值到數組的起始位置

function get_data($table, $id = '', $condition){ 

    if($id != '') 
    array_push(" WHERE `id` = '".$id."' ", $condition); 

    ... 
} 

問題是,如何將一個值(在我的情況下是字符串)添加到數組的開始?

回答

8

array_unshift()是你正在尋找的功能!

array_unshift - 前置一個或多個元素添加到數組的開始

$arr = array(1,2,3); 
print_r($arr); 

/* 
Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
) 
*/ 
array_unshift($arr,0); 
print_r($arr); 

/* 
Array 
(
    [0] => 0 
    [1] => 1 
    [2] => 2 
    [3] => 3 
) 
*/ 
+1

注意與array_unshift,參數將需要你有什麼(只是作爲一個array_push)逆轉 –

+1

這是關於該OP具有以相反的順序參數(事實這是致命錯誤的原因);只是希望OP注意到這個參數順序很重要:-) –

+0

哦:)對!是的 - 我現在也看到了你的答案...... – Lix

4

致命錯誤是因爲你必須以相反的順序的參數:

function get_data($table, $id = '', $condition){ 

    if($id != '') 
    array_push($condition, " WHERE `id` = '".$id."' "); 

    ... 
} 

if $ condition是一個數組,這不會產生致命錯誤,但它會將該項目放置在陣列的末端處。正如其他答案中所提到的那樣,array_unshift是預先添加項目的函數。