我有一个名为$ 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。
答案 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');