簡體   English   中英

使用新值向PHP數組添加額外的一行

[英]Adding an extra row to a PHP array with new values

我有一個名為$ 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。

在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;

至於排序,取決於您的確切需求,有各種排序功能 由於您要根據給定的數組鍵進行排序,因此可能需要使用給定的函數調用usort

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

usort($myArray, 'nameCompare');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM