php array method to delete specified value

藏色散人
Release: 2023-03-07 14:58:01
Original
2442 people have browsed it

php Array method to delete the specified value: 1. Delete by unset after traversing through foreach; 2. Use the array_flip method to delete; 3. Use the array_search method to delete; 4. Use array_keys to search for the specified value and then delete it in a loop .

php array method to delete specified value

Recommended: "PHP Video Tutorial"

php deletes the number of elements with specified values ​​​​in the array Method

The test array is as follows:

//这是一个测试数组
$testArr = array(
't' => 'qq',
'q' => 'qq',
'b' => 'baidu',
'a' => 'ali',
'm' => 'xiaomi'
);
Copy after login

Method one:

//foreach遍历后unset删除,这种方法也是最容易想到的方法
function delByValue($arr, $value){
if(!is_array($arr)){
return $arr;
}
foreach($arr as $k=>$v){
if($v == $value){
unset($arr[$k]);
}
}
return $arr;
}
Copy after login

Method two:

//array_flip之后unset,这种方法有一个弊端,就是反转后由于有两个键值都为qq,有一个数据将会丢失,所以在使用时请谨慎)
function delByValue($arr, $value){
$tempArr = array_flip($arr);
unset($tempArr[$value]);
return array_flip($tempArr);
}
Copy after login

Method three:

//array_search,这种方法亦有弊端,array_search搜索到一个合适的值时便返回,所以在数组存在多个相关的值这种方法不适用)
function delByValue($arr, $value){
$key = array_search($value,$arr);
if(isset($key)){
unset($arr[$key]);
}
return $arr;
}
Copy after login

Method 4:

//使用array_keys搜索指定的值再循环unset)
function delByValue($arr, $value){
$keys = array_keys($arr, $value);
var_dump($keys);
if(!empty($keys)){
foreach ($keys as $key) {
unset($arr[$key]);
}
}
return $arr;
}
Copy after login

Summarizing the four methods, the more feasible methods are Method 1 and Method 4. As for which of the two methods is better, it should be analyzed in detail based on the specific situation.

The above is the detailed content of php array method to delete specified value. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template