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

php 二維數組轉一維數組

王林
王林原創
2023-05-23 10:47:37476瀏覽

在 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