搜尋
首頁後端開發PHP問題php 二維數組轉一維數組

在 PHP 中,陣列是一種非常強大且靈活的資料結構,可以儲存多種不同類型的資料。 PHP 的陣列可以是單維數組、二維數組、多維數組等。

在實際開發過程中,我們經常需要將二維數組轉換為一維數組,以便更方便地遍歷和處理資料。本文將介紹 PHP 中如何將二維數組轉換為一維數組。

PHP 二維陣列

在 PHP 中,二維陣列是指數組中的元素也是陣列的陣列。例如:

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

這裡我們建立了一個 $students 數組,其中包含三個元素,每個元素又是一個數組,包含了學生的姓名、年齡和成績。

將二維數組轉一維數組

在 PHP 中,將二維數組轉換為一維數組有多種方法。以下介紹幾個常用的方法:

方法一:循環遍歷

我們可以透過循環遍歷二維數組的每個元素,然後將其合併到一個新的一維數組中。

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array();
foreach ($students as $student) {
    foreach ($student as $key => $value) {
        $newArray[$key][] = $value;
    }
}

print_r($newArray);

上面的程式碼輸出結果為:

Array
(
    [name] => Array
        (
            [0] => John
            [1] => Mike
            [2] => Mary
        )

    [age] => Array
        (
            [0] => 23
            [1] => 21
            [2] => 22
        )

    [score] => Array
        (
            [0] => 90
            [1] => 80
            [2] => 85
        )

)

可以看到,透過循環遍歷,我們將二維數組轉換為了一個新的關聯數組,其中的每個元素對應了原來二維數組的每個元素的一個鍵值。

方法二:使用 array_column 函數

PHP 提供了 array_column 函數用於從多維數組中取得指定的列。我們可以使用函數來取得每個學生的 name、age 和 score,然後將其合併到一個新的一維陣列中。

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array(
    "name" => array_column($students, "name"),
    "age" => array_column($students, "age"),
    "score" => array_column($students, "score")
);

print_r($newArray);

上面的程式碼輸出結果與方法一相同。

方法三:使用 array_reduce 函數

我們可以使用 array_reduce 函數對二維數組進行迭代,然後將其合併為一個新的一維數組。

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array_reduce($students, function($carry, $student) {
    foreach ($student as $key => $value) {
        $carry[$key][] = $value;
    }
    return $carry;
}, array());

print_r($newArray);

上述程式碼輸出結果與方法一相同。

方法四:自訂函數

我們也可以自訂函數,實作將二維陣列轉換為一維陣列的功能。

function array_convert($arr) {
    $result = array();
    foreach ($arr as $row) {
        foreach ($row as $key => $value) {
            $result[$key][] = $value;
        }
    }
    return $result;
}

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array_convert($students);
print_r($newArray);

上述程式碼輸出結果與方法一相同。

總結

在 PHP 中,將二維數組轉換為一維數組有多種方法,包括循環遍歷、使用 array_column 函數、使用 array_reduce 函數以及自訂函數等。選擇哪種方法取決於特定場景的需求和開發習慣。在實際開發過程中,我們需要靈活運用這些方法,以便更有效率地處理資料。

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

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具