首頁 >後端開發 >PHP問題 >php 陣列行轉列

php 陣列行轉列

WBOY
WBOY原創
2023-05-19 15:28:39612瀏覽

在 PHP 中,陣列是一個非常常用的資料結構。但有時候,我們需要對數組進行操作,將行轉列或列轉行。本文將為大家介紹如何將 PHP 陣列中的行轉列。

行轉列是指將陣列中的每一行轉換為一列,產生一個新的陣列。例如,我們有一個名為$array 的數組,包含以下資料:

$array = array(
    array('name'=>'张三', 'age'=>18, 'sex'=>'男'),
    array('name'=>'李四', 'age'=>20, 'sex'=>'男'),
    array('name'=>'王五', 'age'=>22, 'sex'=>'女')
);

我們想要將它轉換成如下格式的陣列:

$new_array = array(
    'name' => array('张三', '李四', '王五'),
    'age' => array(18, 20, 22),
    'sex' => array('男', '男', '女')
);

下面是實作行轉列的程式碼:

$new_array = array();
foreach($array as $key=>$value){
    foreach($value as $k=>$v){
        $new_array[$k][$key] = $v;
    }
}

程式碼解釋:

  1. 首先,我們建立一個新陣列$new_array 用於儲存行轉列後的結果。
  2. 然後,我們使用兩個 foreach 迴圈遍歷原始數組 $array
  3. 外層遍歷每一行,內層遍歷每一列,並將每一列的值插入到新數組 $new_array 中。

如果需要轉換多維數組,可以使用遞歸的方法實作。以下是實作多維數組行轉列的程式碼:

function array_row2column($array){
    if(!is_array($array)){
        return false;
    }
    $new_array = array();
    foreach($array as $key=>$value){
        foreach($value as $k=>$v){
            $new_array[$k][$key] = (is_array($v)) ? array_row2column($v) : $v;
        }
    }
    return $new_array;
}

程式碼解釋:

  1. 首先,我們定義一個函數array_row2column(),用於將多維數組進行行轉列操作。
  2. 然後,我們在函數中判斷原始數組 $array 是否為數組,如果不是,則傳回 false。
  3. 否則,我們建立一個新陣列 $new_array 用於儲存行轉列後的結果。
  4. 我們使用兩個 foreach 迴圈遍歷原始數組 $array
  5. 外層遍歷每一行,內層遍歷每一列,並將每一列的值插入到新數組 $new_array 中。
  6. 如果該列的值還是一個數組,則使用遞歸方法繼續處理該數組。
  7. 最後,我們回傳新的陣列 $new_array

到這裡,我們就完成了行轉列的操作,希望本文對大家有幫助。

以上是php 陣列行轉列的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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