對于關鍵詞,敏感詞,數組的中詞匯的的操作有很多,在工作中小編用到了一部分,下面是一些比較常見的情況加以整理
NO1:判斷需要的詞匯
有時候我們在一些數據對接的時候會強制加些字段判斷提交詞:
Ex:
$arr = ['123456','654321,'111111','222222']
/*我們不希望出現此類的密碼*/
if(in_array($post,$arr){echo ‘密碼過于簡單’;}
這種做法與正則比較雖然并不高大上但是卻更方便我們處理需求,
NO2:過濾敏感詞
substr_count()函數
$count=substr_count($post,$arr);
if($count>0) {echo '存在敏感詞';break;}
NO3:去除數組中重復的詞
array_unique()函數是個特別好的方法?
array_filp(array_filp(----)) 的效率會優于array_unique()
這篇博客詳細講述了兩者的效率比較
NO4:二維數組去重
function array_unique_fb($array2D){
? ? ? ? ? foreach ($array2D as $v){
? ? ? ? ? $v = join(",",$v); //降維,也可以用implode,將一維數組轉換為用逗號連接的字符串
? ? ? ? ? $temp[] = $v;}
? ? ? ? ?$temp = array_unique($temp); //去掉重復的字符串,也就是重復的一維數組
? ? ? ? ?foreach ($temp as $k => $v){
? ? ? ? ? ?$temp[$k] = explode(",",$v); //再將拆開的數組重新組裝}
? ? ? ? ? ? ?return $temp;}
function assoc_unique(&$arr, $key){
$rAr=array();
for($i=0;$i{
if(!isset($rAr[$arr[$i][$key]])){
$rAr[$arr[$i][$key]]=$arr[$i];}
}
$arr=array_values($rAr);
}
assoc_unique(&$arr,'name');
print_r($arr);
NO5:對數組中的數據進行統一的操作
array_map()
functioncube($n){
return($n*$n*$n);}
$a=?array(1,2,3,4,5);
$b=array_map("cube",$a);
print_r($b);
NO6:數組操作常用的函數
數組元素的排序
一:正向排序: sort()、asort()和 ksort(),郵政排序當然也有相對應的反向排序
sort:對數組內的內容排序?---第二個參數可以設置不同的參數指定排序
asort:?對數組中的數據進行排序并保持索引關系
natsort:對數組進行自然排序的同時保持索引關系
ksort:對數組按照鍵值排序
二:反向排序: rsort()、arsort()和 krsort()
rsort:對數組進行逆向排序
arsort:逆向排序并保持索引關系
krsort:按照鍵值進行逆向排序
array_unshift()函數將新元素添加到數組頭,array_push()函數將每個新元素添加到數組 的末尾。
array_shift()刪除數組頭第一個元素,與其相反的函數是 array_pop(),刪除并返回數組末 尾的一個元素。
array_rand()返回數組中的一個或多個鍵。
函數shuffle()將數組個元素進 行隨機排序。
函數 array_reverse()給出一個原來數組的反向排序
刪除
array_unique刪除數組中的重復值:
注:array_flip 連續使用兩次同樣可以達到去重的效果
array_values:重新分配數組的鍵值
array_map:分配給數組中的每個元素回調方法
array_flip將數組中key和value交換:
array_splice()刪除數組成員 :
array_filter()刪除空數組包括空值 null值和false: