Rumah >pembangunan bahagian belakang >masalah PHP >PHP tatasusunan dua dimensi kepada tatasusunan satu dimensi mengekalkan nama kunci

PHP tatasusunan dua dimensi kepada tatasusunan satu dimensi mengekalkan nama kunci

WBOY
WBOYasal
2023-05-23 09:59:07585semak imbas

Dalam PHP, tatasusunan ialah jenis data yang sangat biasa digunakan. Saya percaya bahawa banyak pembangun PHP akan menggunakan tatasusunan untuk menyimpan, memproses dan melintasi data. Dalam pembangunan sebenar, kadangkala kita perlu menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi dan mengekalkan nama kunci. Operasi seperti ini agak biasa dalam pembangunan sebenar. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dan mengekalkan nama kunci.

1. Apakah tatasusunan PHP?

Sebelum kita mula memperkenalkan cara menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi, kita perlu memahami apa itu tatasusunan dalam PHP. Dalam PHP, tatasusunan boleh digunakan untuk menyimpan satu siri nilai. Nilai ini boleh terdiri daripada sebarang jenis, seperti integer, terapung, rentetan, objek, dll. Setiap nilai dalam tatasusunan dikaitkan dengan kunci, yang boleh menjadi rentetan, integer, dsb. Berbanding dengan bahasa lain, tatasusunan PHP adalah sangat fleksibel dan boleh memenuhi pelbagai keperluan.

Terdapat dua cara untuk menentukan tatasusunan dalam PHP. Salah satunya ialah menggunakan []" untuk mentakrif, contohnya:

$arr1 = [1, 2, 3];
$arr2 = ['name' => 'xiaoming', 'age' => 18];

Cara lain ialah menggunakan tatasusunan() untuk mentakrif, contohnya:

$arr3 = array(4, 5, 6);
$arr4 = array('name' => 'xiaohuang', 'age' => 20);

Struktur tatasusunan boleh dilihat melalui fungsi var_dump, contohnya :

var_dump($arr1);
var_dump($arr2);
var_dump($arr3);
var_dump($arr4);

Hasil keluaran yang diperoleh ialah:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

array(2) {
  ["name"]=>
  string(8) "xiaoming"
  ["age"]=>
  int(18)
}

array(3) {
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
}

array(2) {
  ["name"]=>
  string(8) "xiaohuang"
  ["age"]=>
  int(20)
}

Seperti yang dapat dilihat daripada hasil keluaran, $arr1 dan $arr3 ialah tatasusunan yang diindeks oleh nombor, dan $ arr2 dan $arr4 ialah tatasusunan bersekutu Seterusnya kita akan memperkenalkan cara menukar tatasusunan dua dimensi dalam tatasusunan bersekutu kepada tatasusunan satu dimensi dan mengekalkan nama kunci 2. Menukar tatasusunan dua dimensi

Kami menganggap tatasusunan dua dimensi:

$students = array(
    array('name' => 'xiaoming', 'age' => 18, 'sex' => 'male'),
    array('name' => 'xiaohong', 'age' => 19, 'sex' => 'female'),
    array('name' => 'xiaozhang', 'age' => 20, 'sex' => 'male')
);

Tatasusunan dua dimensi ini mengandungi tiga elemen, setiap elemen adalah maklumat pelajar termasuk nama, umur dan jantina kita perlu menukar tatasusunan dua dimensi ini kepada tatasusunan satu dimensi

Anda boleh menggunakan pernyataan foreach untuk melaksanakan traversal tatasusunan, contohnya:

$newArr = array();
foreach($students as $student) {
    foreach($student as $key => $value) {
        $newArr[$key][] = $value;
    }
}

Dalam kod di atas, yang pertama. foreach gelung Lelaran pada setiap elemen dalam tatasusunan $pelajar, iaitu maklumat setiap pelajar Gelung foreach kedua merentasi pasangan nilai kunci dalam setiap maklumat pelajar, iaitu nama pelajar, umur dan jantina dalam setiap. lelaran. , tambahkan pasangan nilai kunci yang dilalui pada tatasusunan satu dimensi baharu Struktur tatasusunan $newArr yang akhirnya diperolehi adalah seperti berikut:

array(3) {
  ["name"]=>
  array(3) {
    [0]=>
    string(8) "xiaoming"
    [1]=>
    string(8) "xiaohong"
    [2]=>
    string(9) "xiaozhang"
  }
  ["age"]=>
  array(3) {
    [0]=>
    int(18)
    [1]=>
    int(19)
    [2]=>
    int(20)
  }
  ["sex"]=>
  array(3) {
    [0]=>
    string(4) "male"
    [1]=>
    string(6) "female"
    [2]=>
    string(4) "male"
  }
}

Seperti yang anda lihat, setiap pasangan nilai kunci dalam Tatasusunan $newArr masih dikekalkan Nama kunci dalam tatasusunan dua dimensi yang asal dengan cara ini, jika anda perlu melakukan operasi berdasarkan nama kunci tertentu, anda boleh melakukannya dengan mudah

3 . Kekalkan maksud nama kunci

Mengapa kita perlu mengekalkan nama kunci Nama kunci digunakan untuk mengenal pasti nilai tertentu Kelebihan mengekalkan nama kunci ialah anda boleh menggunakan nama kunci secara langsung akses nilai tertentu tanpa gelung untuk mencari nilai yang diperlukan Selain itu, jika nama kunci dikekalkan, pemprosesan data boleh menjadi lebih fleksibel dan operasi seperti penambahan, pemadaman, pengubahsuaian dan pertanyaan boleh dilakukan mengikut keperluan

<.>Sebagai contoh, jika kita perlu mencari dalam tatasusunan $newArr di atas Untuk jantina pelajar berumur 18 tahun, kod tersebut boleh ditulis sebagai:

echo $newArr['sex'][array_search(18, $newArr['age'])];

Seperti yang dapat dilihat dari kod di atas, memandangkan nama kunci dikekalkan, kami boleh terus menggunakan $newArr['age'] untuk mencari maklumat umur pelajar , dan menggunakan fungsi array_search untuk mencari nilai indeks umur 18, dan kemudian menggunakan $newArr['sex' ] untuk mencari maklumat jantina pelajar Pertanyaan ini lebih cekap daripada menggunakan gelung untuk mencari 4. Ringkasan

Artikel ini memperkenalkan secara ringkas cara menggunakan PHP untuk menukar tatasusunan dua dimensi kepada satu-. tatasusunan dimensi dan mengekalkan nama kunci Dalam pembangunan sebenar, mengekalkan nama kunci boleh menjadikan pemprosesan data lebih mudah dan kelajuan pertanyaan juga dipertingkatkan. Semasa memproses data, kita harus memberi perhatian kepada penggunaan nama utama dalam tatasusunan untuk melaksanakan operasi, supaya kebolehbacaan, kebolehselenggaraan dan kebolehskalaan kod akan menjadi lebih baik.

Atas ialah kandungan terperinci PHP tatasusunan dua dimensi kepada tatasusunan satu dimensi mengekalkan nama kunci. 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