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

php 二維數組轉一維數組

May 23, 2023 am 10:47 AM

在 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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1658
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1231
24