PHP函式小技巧
我經常忘記一些php的函式區別,今天整理一下以後忘記好看看自己寫的東西(省的自己在百度或者測試了o(╥﹏╥)o)
1、empty 與 isset
以下是我自己測試的結果
$ii = '';//empty顯示為真isset顯示為真==''顯示為真 $ii = null;//empty顯示為真isset顯示為假==''顯示為真 $ii = 0;//empty顯示為真isset顯示為真==''顯示為真 $ii = '0';//empty顯示為真isset顯示為真==''顯示為假 $ii = false;//empty顯示為真isset顯示為真==''顯示為真 var_dump(empty($ii)); var_dump(isset($ii)); var_dump($ii=='');
2、陣列的array_merge 與 兩個陣列相加
二話不說上測試結果
$a = ['a'=>'1','b'=>'2','c'=>'3','0'=>'5']; $b = ['d'=>'1','e'=>'3','a'=>'4','6','7']; print_r(array_merge($a,$b)); print_r($a + $b); Array ( [a] => 4 [b] => 2 [c] => 3 [0] => 5 [d] => 1 [e] => 3 [1] => 6 [2] => 7 ) Array ( [a] => 1 [b] => 2 [c] => 3 [0] => 5 [d] => 1 [e] => 3 [1] => 7 )
從例子上我們可以直觀地看出來,array_merge他是將兩個陣列的進行合併的同時根據局陣列的鍵值進行合併,當陣列的鍵是關聯的時候後出現的覆蓋之前出現的,非關聯的重新進行排序。
兩個陣列相加時,當陣列的鍵是關聯的時候先出現的覆蓋之後出現的,非關聯的也進行相互覆蓋。
3、array_filter(array
callback [, int $flag = 0 ]])函式
一看這個函式就是用來過濾陣列的,我們可以利用它進行陣列的篩選,比如前段傳來了一個篩選條件,那麼我們就可以根據他進行篩選。
先說說這個函式的引數,$array就是我們要篩選的陣列,callback就是回撥函式(也就是篩選條件),當函式返回ture時資料被保留,返回false時刪除資料。如果不提供回撥函式,那麼就預設刪除false的資料。注:array_filter會過濾掉任何值等於FALSE的值,也就是說0值,空字串,null,都會被過濾。
具體用法如下(篩選名字為cwb的資料):
$new_data = array_filter($data,function($data){return ($data['name']=='cwb');});
4、list(
value2,...)函式
這個函式主要是簡便獲取陣列值,來個例子就明白了。
$array = ['xiaoming','goudan','gangdan']; //正常獲取: $xiaoming = $array[0]; $goudan= $array[1]; $gangdan= $array[2]; //利用list函式 list($xiaoming,$goudan,$gangdan) = $array;