首頁  >  文章  >  後端開發  >  php 多維轉二維數組

php 多維轉二維數組

PHPz
PHPz原創
2023-05-07 16:37:08581瀏覽

在PHP中,開發人員常常需要處理從各種資源中取得的多維資料結構,這些資料結構可能會包含非常複雜的資料類型。多維數組在處理這些資料結構時是一個非常有用的工具,但是在某些情況下,我們可能需要將多維數組轉換成二維數組。

在本文中,我們將探討如何使用PHP將多維數組轉換為二維數組,以實現更普遍的資料處理需求。

  1. 定義多維數組

為了示範如何將多維數組轉換為二維數組,我們首先需要定義一個多維數組。我們將建立一個包含三個主要分類的「水果」數組,每個分類都包含三個不同的條目。

$fruits = array(

"apples" => array(
    array("brand" => "Granny Smith", "color" => "green", "price" => 0.75),
    array("brand" => "Fuji", "color" => "red", "price" => 0.50),
    array("brand" => "Golden Delicious", "color" => "yellow", "price" => 0.60)
),
"oranges" => array(
    array("brand" => "Valencia", "color" => "orange", "price" => 0.80),
    array("brand" => "Navel", "color" => "orange", "price" => 0.85),
    array("brand" => "Blood", "color" => "red", "price" => 1.10)
),
"bananas" => array(
    array("brand" => "Cavendish", "color" => "yellow", "price" => 0.25),
    array("brand" => "Lady Finger", "color" => "green", "price" => 0.30),
    array("brand" => "Red Dacca", "color" => "red", "price" => 0.35)
)

);

#在上面的數組中,我們創建了一個包含三個分類的水果數組,其中每個分類都包含三個不同的品牌、顏色和價格組合。

  1. 將多維數組轉換為二維數組

現在我們已經定義了一個多維數組,並且理解了它是如何組織的,我們可以開始編寫程式碼來將其轉換為二維數組。

我們可以使用PHP的array_map函數,它可以對多維數組中的每個元素應用一個回調函數,並傳回一個新的數組,該數組包含回調函數的結果。

以下是一個包含回呼函數的範例程式碼,它將多維數組轉換為二維數組:

$flat_fruits = array();
array_map(function($group) use (&$flat_fruits) {

foreach ($group as $item) {
    $flat_fruits[] = array(
        "category" => array_keys($group)[0],
        "brand" => $item["brand"],
        "color" => $item["color"],
        "price" => $item["price"]
    );
}

}, $fruits);

在上面的程式碼中,我們首先建立了一個名為$flat_fruits的新數組,用於儲存我們轉換後的結果。然後我們使用array_map函數來遍歷$fruits數組的每個條目,並將其傳遞給匿名函數,該函數對該條目執行一些操作。

在這個匿名函數中,我們首先使用foreach循環遍歷每個分類中的所有可能項。對於每個項目,我們將其包裝在一個新的陣列中,並將該項目的品牌、顏色、價格和類別(在這裡我們僅使用了分類的名稱)儲存在該陣列中。最後,我們將該新數組加入$flat_fruits數組中,該數組成為我們轉換後的二維數組。

  1. 輸出結果

為了驗證我們的程式碼是否有效,我們可以簡單地輸出$flat_fruits陣列並查看轉換後的值。以下是一個輸出$flat_fruits數組的程式碼:

foreach ($flat_fruits as $item) {

echo $item["category"] . " > " . $item["brand"] . " (" . $item["color"] . ", $" . $item["price"] . ")\n";

}

##在上面的程式碼中,我們使用foreach循環來遍歷$flat_fruits數組中的每個項目。對於每個項,我們將其內容格式化為一個字串,然後輸出到終端上。

輸出的結果應該類似於以下:

apples > Granny Smith (green, $0.75)

apples > Fuji (red, $0.5)
apples > Golden Delicious (yellow, $0.6)
oranges > Valencia (orange, $0.8)
oranges > Navel (orange, $0.85)
oranges > Blood (red, $1.1)
bananas > Cavendish (gt; Cavendish yellow, $0.25)
bananas > Lady Finger (green, $0.3)
bananas > Red Dacca (red, $0.35)

#如你所見,我們成功地將多維數組轉換為了二維維數組,並且對結果進行了格式化輸出。由此可見,PHP的array_map函數是指向處理多維數組非常好用的工具。它允許開發人員輕鬆地對多維資料結構進行操作,並且可以輕鬆地應用一些轉換邏輯,以便將資料轉換成任何需要的格式。

以上是php 多維轉二維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn