Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mendapatkan medan tatasusunan dua dimensi dalam PHP backend

Bagaimana untuk mendapatkan medan tatasusunan dua dimensi dalam PHP backend

PHPz
PHPzasal
2023-04-20 13:48:061255semak imbas

Dalam PHP, tatasusunan dua dimensi biasanya disimpan sebagai koleksi data yang berkaitan. Untuk jenis struktur data ini, anda boleh menggelung melalui setiap elemen tatasusunan dan kemudian menggunakan pengendali indeks tatasusunan untuk mengakses nilai setiap elemen. Jika anda hanya perlu mengakses medan tertentu, anda boleh menggunakan fungsi array_column() atau menyesuaikan fungsi traversal.

1. Gunakan fungsi array_column()
Fungsi array_column() boleh mendapatkan nilai medan dalam tatasusunan yang ditentukan dan mengembalikannya sebagai tatasusunan baharu. Senarai parameter adalah seperti berikut:

array_column(array $input, mixed $column_key, mixed $index_key = null): array
Perihalan parameter:

  • $input: diperlukan , diperlukan Mendapat tatasusunan medan berbilang dimensi.
  • $column_key: diperlukan, nilai kunci untuk dikembalikan. Ia boleh menjadi rentetan, menunjukkan bahawa nilai kunci ini akan dikembalikan; ia juga boleh menjadi nombor, menunjukkan bahawa nilai indeks ini akan dikembalikan.
  • $index_key: Pilihan, lajur untuk digunakan sebagai kunci tatasusunan yang dikembalikan. Ia boleh menjadi rentetan, menunjukkan bahawa nilai lajur ini harus digunakan sebagai kunci juga boleh menjadi nombor, menunjukkan bahawa nilai $column_key harus digunakan sebagai kunci.

Contoh berikut menunjukkan cara menggunakan fungsi array_column() untuk mendapatkan medan yang ditentukan dalam tatasusunan dua dimensi:

// 二维数组
$data = array(
    array('id'=>1, 'name'=>'Alice', 'age'=>20),
    array('id'=>2, 'name'=>'Bob', 'age'=>23),
    array('id'=>3, 'name'=>'Charlie', 'age'=>25),
);
    
// 获取名字字段值
$names = array_column($data, 'name');
print_r($names); // 输出 ['Alice', 'Bob', 'Charlie']

// 获取id和名字作为键的新数组
$new_data = array_column($data, 'age', 'name');
print_r($new_data); //输出 ['Alice'=>20, 'Bob'=>23, 'Charlie'=>25]

2 >Jika anda perlu mendapatkan Jika medan tidak mempunyai kedudukan tetap, atau jika anda perlu menyesuaikan operasi yang kompleks, anda boleh menyesuaikan fungsi traversal untuk melaksanakannya. Berikut ialah contoh kod untuk fungsi traversal:

// 自定义一个遍历函数
function get_field_from_array($data,$field){
    $result = array();
    foreach($data as $item){
        if(array_key_exists($field,$item)){
            $result[] = $item[$field];
        }
    }
    return $result;
}

// 二维数组
$data = array(
    array('id'=>1, 'name'=>'Alice', 'age'=>20),
    array('id'=>2, 'name'=>'Bob', 'age'=>23),
    array('id'=>3, 'name'=>'Charlie', 'age'=>25),
);

// 获取名字字段值
$names = get_field_from_array($data,'name');
print_r($names); //输出 ['Alice', 'Bob', 'Charlie']

// 获取id字段值
$ids = get_field_from_array($data,'id');
print_r($ids); //输出 [1, 2, 3]
Melalui dua kaedah di atas, anda boleh mendapatkan nilai medan yang ditentukan dengan mudah dalam tatasusunan dua dimensi. Tidak kira kaedah yang digunakan, anda perlu memberi perhatian sama ada format tatasusunan masuk memenuhi keperluan fungsi untuk mengelakkan ralat dan pengecualian yang disebabkan oleh format tatasusunan yang salah.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan medan tatasusunan dua dimensi dalam PHP backend. 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