使用新值向PHP数组添加额外的行

时间:2014-10-10 19:17:24

标签: php arrays

我有一个名为$ items的数组。我的CMS用三个产品创建了这个数组,我刚刚做了一个var_dump,结果如下。

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。

1 个答案:

答案 0 :(得分: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');