Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php array baris ke lajur

php array baris ke lajur

WBOY
WBOYasal
2023-05-19 15:28:39589semak imbas

Dalam PHP, tatasusunan ialah struktur data yang sangat biasa digunakan. Tetapi kadangkala, kita perlu mengendalikan tatasusunan dan menukar baris kepada lajur atau lajur kepada baris. Artikel ini akan memperkenalkan anda cara menukar baris kepada lajur dalam tatasusunan PHP.

Baris ke lajur merujuk kepada menukar setiap baris dalam tatasusunan kepada lajur untuk menjana tatasusunan baharu. Sebagai contoh, kami mempunyai tatasusunan bernama $array yang mengandungi data berikut:

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

Kami ingin menukarnya menjadi tatasusunan dalam format berikut:

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

Berikut ialah kod untuk menukar baris ke lajur:

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

Penerangan kod:

  1. Mula-mula, kami mencipta tatasusunan baharu $new_array untuk menyimpan hasil selepas penukaran baris.
  2. Kemudian, kami menggunakan dua gelung foreach untuk lelaran ke atas tatasusunan asal $array.
  3. Lapisan luar merentasi setiap baris, lapisan dalam merentasi setiap lajur dan memasukkan nilai setiap lajur ke dalam tatasusunan baharu $new_array.

Jika anda perlu menukar tatasusunan berbilang dimensi, anda boleh menggunakan kaedah rekursif. Berikut ialah kod untuk melaksanakan penukaran baris ke lajur tatasusunan berbilang dimensi:

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;
}

Penjelasan kod:

  1. Pertama, kami mentakrifkan fungsi array_row2column() untuk menukar tatasusunan berbilang dimensi ke dalam baris dan lajur .
  2. Kemudian, dalam fungsi, kami menentukan sama ada tatasusunan asal $array ialah tatasusunan, dan jika tidak, kembalikan palsu.
  3. Jika tidak, kami mencipta tatasusunan baharu $new_array untuk menyimpan hasil selepas penukaran baris.
  4. Kami menggunakan dua gelung foreach untuk melintasi tatasusunan asal $array.
  5. Lapisan luar merentasi setiap baris, lapisan dalam merentasi setiap lajur dan memasukkan nilai setiap lajur ke dalam tatasusunan baharu $new_array.
  6. Jika nilai lajur masih merupakan tatasusunan, gunakan kaedah rekursif untuk meneruskan pemprosesan tatasusunan.
  7. Akhir sekali, kami mengembalikan tatasusunan baharu $new_array.

Pada ketika ini, kami telah menyelesaikan operasi menukar baris kepada lajur, saya harap artikel ini dapat membantu semua orang.

Atas ialah kandungan terperinci php array baris ke lajur. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn