2014-10-10 47 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

相关问题