方法一:利用循環(huán)(本文以foreach為例)
語法結(jié)構(gòu)如下:
foreach (array_expression as $value)
foreach (array_expression as $key => $value)
具體用法請參考:《php foreach的用法詳解》,具體代碼如下:
<?php foreach( $arr as $k=>$v){ if( !$v ) unset( $arr[$k] ); } ?>
這種方法比較簡單,初學(xué)者便于理解,但是復(fù)雜度較高,消耗較多的內(nèi)存,所以一般不建議使用。
方法二:利用array_filter()函數(shù)
語法結(jié)構(gòu)如下:
array_filter( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次將 array 數(shù)組中的每個值傳遞到callback 函數(shù)。如果 callback
函數(shù)返回 true
,則 array
數(shù)組的當(dāng)前值會被包含在返回的結(jié)果數(shù)組中,數(shù)組的鍵名保留不變。
-
array
要循環(huán)的數(shù)組 -
callback
使用的回調(diào)函數(shù),如果沒有提供callback
函數(shù),將刪除array
中所有等值為FALSE
的條目。 -
flag
決定callback
接收的參數(shù)形式:(1)ARRAY_FILTER_USE_KEY – callback接受鍵名作為的唯一參數(shù)。(2)ARRAY_FILTER_USE_BOTH – callback同時接受鍵名和鍵值。
返回值:被過濾后的數(shù)組。
具體代碼如下:
<?php $arr = array( 0 => 'hello', 1 => false, 2 => -1, 3 => null, 4 => '' ); echo "<pre>"; var_dump(array_filter($arr)); ?>
運行結(jié)果如下:
/* array(2) { [0]=> string(5) "hello" [2]=> int(-1) } */
推薦:php視頻教程 php教程