Dua kaedah: 1. Gunakan array_search() dan array_splice() untuk memadam, sintaksnya ialah "array_splice($arr,array_search("string",$arr,true),1);". 2. Gunakan pernyataan foreach dan unset() untuk memadam, sintaks "foreach($arr as $k=>&$v){if($v==="string"){unset($arr[$k ]) ;}}".
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer DELL G3
Kaedah 1 : Gunakan array_search() array_splice()
Langkah 1: Gunakan fungsi array_search() untuk mencari rentetan yang ditentukan dalam tatasusunan dan mengembalikan nama kunci yang sepadan
array_search(value,array,strict)
参数 | 描述 |
---|---|
value | 必需。规定在数组中搜索的键值。 |
array | 必需。规定被搜索的数组。 |
strict | 可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值:
|
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(10,"12",12,25,24); echo "原数组:"; var_dump($arr); $key=array_search("12",$arr,true); echo "指定字符串'12'的键名为:".$key; ?>
Langkah 2: Gunakan fungsi array_splice() untuk memadamkan elemen berdasarkan nama kunci yang diperolehi
array_splice( ) fungsi mengalih keluar elemen yang dipilih daripada tatasusunan (atau menggantikannya dengan elemen baharu).
array_splice(array1,start,length,array2)
参数 | 描述 |
---|---|
array1 | 必需。规定数组。 |
start | 必需。数值。规定删除元素的开始位置。
0 = 第一个元素。
如果该值设置为正数,则从数组中该值指定的偏移量开始移除。如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。
-2 意味着从数组的倒数第二个元素开始。 |
length | 可选。数值。规定被移除的元素个数,也是被返回数组的长度。
如果该值设置为正数,则移除该数量的元素。如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。 |
array2 | 可选。规定带有要插入原始数组中元素的数组。如果只有一个元素,则可以设置为字符串,不需要设置为数组。 |
Nota: Fungsi ini akan menukar tatasusunan asal
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(10,"12",12,25,24); echo "原数组:"; var_dump($arr); $key=array_search("12",$arr,true); echo "指定字符串'12'的键名为:".$key; array_splice($arr,$key,1); echo "<br><br>删除指定字符串'12'后:"; var_dump($arr); ?>
Kaedah 2: Gunakan foreach statement unset() function
Langkah 1: Gunakan foreach statement untuk melintasi tatasusunan melalui gelung rujukan
foreach ($array as $key => &$value){ //循环体语句块; }
untuk melintasi Array $array yang diberikan, dalam setiap gelung, nilai tatasusunan semasa akan diberikan kepada $value, dan nama kunci akan diberikan kepada $key.
Secara amnya, apabila menggunakan pernyataan foreach untuk melintasi tatasusunan, ia beroperasi pada sandaran tatasusunan dan secara amnya tidak menjejaskan tatasusunan itu sendiri.
Jika anda ingin menukar tatasusunan melalui gelung, anda boleh menggunakan gelung rujukan (tambah & sebelum $value, supaya pernyataan foreach akan menetapkan nilai melalui rujukan dan bukannya menyalin nilai), kemudian kendalikan tatasusunan dalam badan gelung, akan mempengaruhi tatasusunan itu sendiri.
Langkah 2: Dalam badan gelung, gunakan operator "===" untuk mencari rentetan yang ditentukan dan gunakan fungsi unset() untuk memadamkan elemen
if($value==="指定字符串"){ unset($arr[$key]); }
Kod sampel lengkap:
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(10,"25",12,25,"24"); echo "原数组:"; var_dump($arr); foreach ($arr as $key => &$value){ if($value==="25"){ unset($arr[$key]); } } echo "<br>删除指定字符串'25'后:"; var_dump($arr); ?>
Seperti yang anda lihat, terdapat & sebelum elemen terakhir Itu kerana rujukan $value daripada elemen terakhir tatasusunan Akan kekal selepas gelung foreach. Kita perlu menggunakan unset() untuk memusnahkannya.
unset($value); // 最后取消掉引用
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar rentetan tertentu daripada tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!