Rumah > pembangunan bahagian belakang > masalah PHP > php array baris ke lajur

php array baris ke lajur

WBOY
Lepaskan: 2023-05-19 15:28:39
asal
639 orang telah melayarinya

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'=>'女')
);
Salin selepas log masuk

Kami ingin menukarnya menjadi tatasusunan dalam format berikut:

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

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;
    }
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan