php 二維數組轉一維數組

王林
發布: 2023-05-23 10:47:37
原創
385 人瀏覽過

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!