2014-10-10 74 views
0

我有一個名爲$ items的數組。我的CMS使用三種產品創建了這個數組,我剛剛做了一個var_dump,結果如下。使用新值向PHP數組添加額外的行

array(3) { [0]=> array(11) { ["item_id"]=> string(4) "1320" ["name"]=> string(5) "ITEM_A" ["price"]=> string(6) "$5.00" } 
      [1]=> array(11) { ["item_id"]=> string(4) "1321" ["name"]=> string(5) "ITEM_B" ["price"]=> string(6) "$5.00" } 
      [2]=> array(11) { ["item_id"]=> string(4) "1323" ["name"]=> string(5) "ITEM_D" ["price"]=> string(6) "$5.00" } 
     } 

有沒有一種方法,我可以注入另一個項目,「ITEM_C」到這個陣列,這樣它現在

array(3) { [0]=> array(11) { ["item_id"]=> string(4) "1320" ["name"]=> string(5) "ITEM_A" ["price"]=> string(6) "$5.00" } 
      [1]=> array(11) { ["item_id"]=> string(4) "1321" ["name"]=> string(5) "ITEM_B" ["price"]=> string(6) "$5.00" } 
      [2]=> array(11) { ["item_id"]=> string(4) "1323" ["name"]=> string(5) "ITEM_D" ["price"]=> string(6) "$5.00" } 
      [3]=> array(11) { ["item_id"]=> string(4) "1322" ["name"]=> string(5) "ITEM_C" ["price"]=> string(6) "$5.00" } 
     } 

,並在排序由「名」?我基本上想要總是添加一個新的行到這個數組,這個數組總是有不同的名字,然後按名稱排序。當我執行foreach php命令時,我不希望它按ITEM_A,ITEM_B,ITEM_D,ITEM_C的順序排列。它需要是ITEM_A,ITEM_B,ITEM_C,ITEM_D。

回答

0

追加到PHP中的數組是很容易爲$array[]

$myArray = array(1,2,3); 
$myArray[] = 4; //now array(1,2,3,4) 

所以要添加到現有陣列,先創建新的數組

$element = array("item_id" => 1322, "name" => "ITEM_C", /*etc.*/); 

然後將其添加您的陣列

$myArray[] = $element; 

至於排序,有various sort functions取決於您的確切需求。既然你根據給定的數組排序的關鍵,你可能需要調用usort與給定功能。

function nameCompare($a, $b) 
{ 
    $a = $a["name"]; 
    $b = $b["name"]; 
    return strcmp($a, $b); 
} 

usort($myArray, 'nameCompare'); 
+0

$ myArray的[] = 4;工作不錯,但我怎麼把它分配給像「ITEM_ID」和「名」具體列名? – user1636946 2014-10-10 19:41:39

+0

只需首先創建該子數組。我更新了我的帖子。 – SolarBear 2014-10-10 20:12:08

+0

TY太好了!工作很棒! – user1636946 2014-10-10 20:39:17