3 回答

TA貢獻(xiàn)1853條經(jīng)驗 獲得超6個贊
您可以利用該array_filter結(jié)果本身。你得到所有不是的值NULL。所以從那個數(shù)組中獲取,這就是你對函數(shù)的最終限制。last keyarray_slice
<?php
$arr = [null, null, 1, 4, 6, null, null, null, null,null];
$filtered_arr = array_filter($arr);
end($filtered_arr);
$limit = key($filtered_arr) + 1;
$arr = array_slice($arr,0,$limit);
print_r($arr);
演示: https ://3v4l.org/RVcjt
更新:
如果輸入數(shù)組包含 a 0,則上述答案可能會導(dǎo)致不正確的結(jié)果。為了解決這個問題,我們可以只從數(shù)組中過濾掉 NULL 值。
<?php
$arr = [null, null, 1, 4, 6, null, 0, null, null,null];
$filtered_arr = array_filter($arr,function($value){
return !is_null($value);
});
end($filtered_arr);
$limit = key($filtered_arr) + 1;
$arr = array_slice($arr,0,$limit);
print_r($arr);
演示: https ://3v4l.org/S5a96

TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊
你可以試試下面的代碼
$notNull = true;
$item = [null, null, 1, 4, 6, null, null, null, null];
$output = array();
for($i=count($item)-1;$i>=0;$i--){
if( is_null( $item[$i]) && $notNull ){
continue;
}
else{
$notNull = false;
$output[] = $item[$i];
}
}
$output = array_reverse($output);

TA貢獻(xiàn)1850條經(jīng)驗 獲得超11個贊
您可以使用array_pop()刪除最后的項目,直到遇到非空值(或空數(shù)組),然后將最后一個項目推回......
$array = [null, null, 1, 4, 6, null, null, null, null];
while( count($array) > 0 && ($end = array_pop($array)) === null );
array_push($array, $end);
print_r($array);
這使...
Array
(
[0] =>
[1] =>
[2] => 1
[3] => 4
[4] => 6
)
- 3 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報