PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas Ia mempunyai keupayaan pemprosesan data yang berkuasa dan fleksibiliti dan digunakan secara meluas dalam pembangunan web. Antaranya, tatasusunan adalah jenis data yang sangat penting, sering digunakan untuk menyimpan dan mengendalikan data. Dalam PHP, kita boleh menggunakan fungsi terbina dalam untuk melaksanakan pelbagai operasi pada tatasusunan, seperti menambah, memadam, bertanya, menyusun, melintasi, dll. Artikel ini akan menumpukan pada operasi elemen penggantian tatasusunan PHP dan memberikan contoh kod khusus.
1. Fungsi biasa untuk menggantikan elemen tatasusunan
PHP menyediakan berbilang fungsi untuk menggantikan elemen dalam tatasusunan, di mana tiga fungsi berikut adalah yang paling biasa digunakan:
Fungsi ini menggantikan elemen dalam array 2 dengan elemen yang sepadan dalam array 1. Jika terdapat nama kunci yang sama dalam array 1 atau array 2, Kemudian gunakan nilai dalam tatasusunan terakhir untuk menggantikan nilai dalam tatasusunan sebelumnya. Sila lihat contoh kod berikut:
$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry'); $array2 = array('a' => 'apricot', 'd' => 'date'); $result = array_replace($array1, $array2); print_r($result);
Laksanakan kod di atas, anda akan mendapat output berikut:
Array ( [a] => apricot [b] => banana [c] => cherry [d] => date )
Seperti yang anda lihat, pasangan nilai kunci dalam tatasusunan 1 ('a'= >'apple') telah digantikan dengan pasangan nilai kunci dalam tatasusunan 2 ('a'=>'aprikot'), dan pasangan nilai kunci baharu dalam tatasusunan 2 ('d' =>'tarikh') Juga ditambah pada tatasusunan hasil akhir.
Fungsi ini sangat serupa dengan array_replace(), tetapi ia secara rekursif menggantikan elemen dalam array 2 dengan array 1 elemen sepadan . Jika nilai dalam tatasusunan1 atau tatasusunan2 ialah tatasusunan, pasangan nilai kunci dalam nilai itu juga akan diganti secara rekursif. Sila lihat contoh kod berikut:
$array1 = array('a' => array('b' => 'blue', 'c' => 'cyan'), 'd' => 'black'); $array2 = array('a' => array('b' => 'brown', 'e' => 'emerald')); $result = array_replace_recursive($array1, $array2); print_r($result);
Laksanakan kod di atas, anda akan mendapat output berikut:
Array ( [a] => Array ( [b] => brown [c] => cyan [e] => emerald ) [d] => black )
Seperti yang anda lihat, pasangan nilai kunci dalam tatasusunan 1 ('a'= >array('b'=>'blue', 'c'=>'cyan')) telah digantikan dengan pasangan nilai kunci dalam tatasusunan 2 ('a'=> array('b'=>' brown', 'e'=>'zamrud')). Selain itu, subarray dalam tatasusunan juga diganti secara rekursif.
Fungsi ini digunakan untuk memadam elemen pada kedudukan yang ditentukan dalam tatasusunan dan memasukkan yang baru pada elemen kedudukan itu. Khususnya, parameter $offset mewakili kedudukan indeks permulaan elemen yang akan dipadam/diganti, parameter $length mewakili bilangan elemen yang akan dipadam (0 jika tiada elemen dipadamkan), dan parameter $replacement mewakili elemen baharu untuk dimasukkan. Sila lihat contoh kod berikut:
$array = array('red', 'green', 'blue', 'yellow'); array_splice($array, 1, 2, array('purple', 'orange')); print_r($array);
Laksanakan kod di atas dan anda akan mendapat output berikut:
Array ( [0] => red [1] => purple [2] => orange [3] => yellow )
Seperti yang anda lihat, 2 elemen bermula dari indeks 1 dalam tatasusunan asal ( 'hijau', 'biru') telah dialih keluar dan dua elemen baharu ('ungu', 'oren') telah dimasukkan pada indeks 1.
2. Contoh Aplikasi
Sekarang, mari kita lihat cara menggunakan fungsi di atas untuk menggantikan elemen dalam tatasusunan PHP berdasarkan senario aplikasi tertentu.
Andaikan kita mempunyai tatasusunan yang mana nama utamanya ialah nama Cina bagi sesetengah tumbuhan dan nilai utamanya ialah nama Inggerisnya. Sekarang, kami ingin menggantikan nama Inggeris beberapa tumbuhan ini, seperti "epal" dengan "oren" dan "ceri" dengan "anggur", meninggalkan yang lain tidak berubah. Ini boleh dicapai menggunakan fungsi array_replace(). Sila lihat contoh kod di bawah:
$plants = array('苹果' => 'apple', '香蕉' => 'banana', '樱桃' => 'cherry', '葡萄' => 'grape'); $rules = array('apple' => 'orange', 'cherry' => 'grape'); $newPlants = array_replace($plants, $rules); print_r($newPlants);
Laksanakan kod di atas, anda akan mendapat output berikut:
Array ( [苹果] => orange [香蕉] => banana [樱桃] => grape [葡萄] => grape )
Seperti yang anda lihat, nama utama ialah "epal" dan "ceri" Nilai telah digantikan dengan "oren" dan "anggur" masing-masing, manakala baki nilai utama kekal tidak berubah.
Andaikan kita mempunyai tatasusunan berbilang dimensi, nama kunci ialah nama beberapa bandar dan nilai kunci ialah bersekutu tatasusunan, yang mengandungi penduduk bandar, industri dan maklumat lain. Sekarang, kami ingin menambah dan menolak populasi bandar tertentu dan menyimpan hasilnya kembali ke tatasusunan asal. Ini boleh dicapai menggunakan fungsi array_replace_recursive() Kod adalah seperti berikut:
$cities = array( '北京市' => array('人口' => 2154, '产业' => '政治、文化、金融、科技'), '上海市' => array('人口' => 2424, '产业' => '金融、贸易、科技、文化'), '广州市' => array('人口' => 1500, '产业' => '商贸、制造、物流、金融') ); $rules = array( '北京市' => array('人口' => -100), '广州市' => array('人口' => 200) ); $newCities = array_replace_recursive($cities, $rules); print_r($newCities);
Laksanakan kod di atas dan anda akan mendapat output berikut:
Array ( [北京市] => Array ( [人口] => 2054 [产业] => 政治、文化、金融、科技 ) [上海市] => Array ( [人口] => 2424 [产业] => 金融、贸易、科技、文化 ) [广州市] => Array ( [人口] => 1700 [产业] => 商贸、制造、物流、金融 ) )
Seperti yang anda boleh lihat, penduduk Beijing telah berkurangan sebanyak 100 juta, penduduk Kota Guangzhou meningkat sebanyak 2 juta, manakala maklumat Bandar Shanghai kekal tidak berubah.
Andaikan kita mempunyai tatasusunan yang menyimpan nama dan umur beberapa individu. Sekarang, kami mahu memadamkan maklumat untuk orang yang berumur 30 tahun ke atas. Anda boleh menggunakan fungsi array_splice() untuk mencapai ini. boleh lihat, dua orang berumur 30 tahun ke atas adalah Maklumat individu tersebut telah berjaya dipadamkan, manakala maklumat dua individu berumur bawah 30 tahun kekal tidak berubah.
$people = array( array('name' => '张三', 'age' => 25), array('name' => '李四', 'age' => 35), array('name' => '王五', 'age' => 28), array('name' => '赵六', 'age' => 42) ); for ($i = count($people) - 1; $i >= 0; $i--) { if ($people[$i]['age'] >= 30) { array_splice($people, $i, 1); } } print_r($people);
Array ( [0] => Array ( [name] => 张三 [age] => 25 ) [1] => Array ( [name] => 王五 [age] => 28 ) )
Atas ialah kandungan terperinci Mari kita bincangkan secara mendalam tentang operasi elemen penggantian tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!