PHP刪除數(shù)組中指定值的元素常用方法實(shí)例分析【4種方法】
本文實(shí)例講述了PHP刪除數(shù)組中指定值的元素。分享給大家供大家參考,具體如下:
測試數(shù)組如下:
//這是一個(gè)測試數(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;
}
測試:
$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í)請謹(jǐn)慎)
function delByValue($arr, $value){
$tempArr = array_flip($arr);
unset($tempArr[$value]);
return array_flip($tempArr);
}
測試:
$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;
}
測試:
$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;
}
測試:
$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é)》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP數(shù)學(xué)運(yùn)算函數(shù)大匯總(經(jīng)典值得收藏)
這篇文章主要介紹了PHP數(shù)學(xué)運(yùn)算函數(shù),匯總分析了常見的PHP數(shù)學(xué)運(yùn)算函數(shù)的功能,使用方法與注意事項(xiàng),需要的朋友可以參考下2016-04-04
PHP如何使用XlsWriter實(shí)現(xiàn)百萬級數(shù)據(jù)導(dǎo)入導(dǎo)出
這篇文章主要為大家詳細(xì)介紹了PHP如何使用XlsWriter實(shí)現(xiàn)百萬級數(shù)據(jù)導(dǎo)入導(dǎo)出,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
從php核心代碼分析require和include的區(qū)別
見到鳥哥的一文 深入理解PHP之require/include順序 忍不住繼續(xù)再深入了一下下,在此記錄一下深入的過程,以供以后查閱。2011-01-01
php實(shí)現(xiàn)執(zhí)行某一操作時(shí)彈出確認(rèn)、取消對話框
當(dāng)執(zhí)行某一操作比如確認(rèn)或者取消時(shí)如何彈出對話框,針對這個(gè)需求,下面使用php來實(shí)現(xiàn)下,感興趣的朋友不要錯(cuò)過2013-12-12
php文章內(nèi)容分頁并生成相應(yīng)的htm靜態(tài)頁面代碼
php 文章內(nèi)容分頁并生成對應(yīng)的htm靜態(tài)文件實(shí)例代碼,一般主要用戶長文件分頁。2010-06-06
mysql_escape_string()函數(shù)用法分析
這篇文章主要介紹了mysql_escape_string()函數(shù)用法,結(jié)合實(shí)例形式講述了mysql_escape_string()函數(shù)的功能,并分析了mysql_escape_string的使用技巧與注意事項(xiàng),需要的朋友可以參考下2016-04-04

