本文實(shí)例講述了PHP刪除數(shù)組中指定值的元素。分享給大家供大家參考,具體如下:
測(cè)試數(shù)組如下:
//這是一個(gè)測(cè)試數(shù)組
$testArr = array(
't' => 'qq',
'q' => 'qq',
'b' => 'baidu',
'a' => 'ali',
'm' => 'xiaomi'
);
方法一:
//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;
}
測(cè)試:
$testArr = delByValue($testArr,'baidu');
print_r($testArr)
運(yùn)行結(jié)果:
Array
(
[t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)
方法二:
//array_flip之后unset,這種方法有一個(gè)弊端,就是反轉(zhuǎn)后由于有兩個(gè)鍵值都為qq,有一個(gè)數(shù)據(jù)將會(huì)丟失,所以在使用時(shí)請(qǐng)謹(jǐn)慎)
function delByValue($arr, $value){
$tempArr = array_flip($arr);
unset($tempArr[$value]);
return array_flip($tempArr);
}
測(cè)試:
$testArr = delByValue($testArr,'baidu');
print_r($testArr)
運(yùn)行結(jié)果:
Array
(
[q] => qq
[a] => ali
[m] => xiaomi
)
方法三:
//array_search,這種方法亦有弊端,array_search搜索到一個(gè)合適的值時(shí)便返回,所以在數(shù)組存在多個(gè)相關(guān)的值這種方法不適用)
function delByValue($arr, $value){
$key = array_search($value,$arr);
if(isset($key)){
unset($arr[$key]);
}
return $arr;
}
測(cè)試:
$testArr = delByValue($testArr,'baidu');
print_r($testArr)
運(yùn)行結(jié)果:
Array
(
[t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)
方法四:
//使用array_keys搜索指定的值再循環(huán)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;
}
測(cè)試:
$testArr = delByValue($testArr,'baidu');
print_r($testArr)
運(yùn)行結(jié)果:
array(1) {
[0]=>
string(1) "b"
}
Array
(
[t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)
四種方法總結(jié)下來,真正比較可行的還是方法1和方法4了,至于這兩種方法哪個(gè)更好,那就應(yīng)該是具體情況具體分析了。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)組(Array)操作技巧大全》、《php排序算法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》及《PHP常用遍歷算法與技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP實(shí)現(xiàn)動(dòng)態(tài)刪除XML數(shù)據(jù)的方法示例
- php刪除二維數(shù)組中的重復(fù)值方法
- php刪除一個(gè)路徑下的所有文件夾和文件的方法
- PHP刪除數(shù)組中指定下標(biāo)的元素方法
- php 刪除一維數(shù)組中某一個(gè)值元素的操作方法
- 實(shí)現(xiàn)php刪除鏈表中重復(fù)的結(jié)點(diǎn)