[英]Remove empty array elements except first (empty)
是否可以從數組中刪除除第一個元素以外的所有空元素? 看這個例子:
Array (
[0] => val1
[1] => val2
[2] => val3
[3] =>
[4] => val4
[5] => val5
[6] => val6
[7] =>
[8] => val7
[9] => val8
[10] => val9
)
Array (
[0] => val1
[1] => val2
[2] => val3
[3] =>
[4] => val4
[5] => val5
[6] => val6
[7] => val7
[8] => val8
[9] => val9
)
這可能嗎? 哪個是實現此目標的最佳方法?
在此先感謝您的幫助。
簡單的解決方案是:
$a = array(
'0' => 'val1',
'1' => 'val2',
'2' => 'val3',
'3' => '',
'4' => 'val4',
'5' => 'val5',
'6' => 'val6',
'7' => '',
'8' => 'val7',
'9' => 'val8',
'10' => 'val9',
);
// special flag to check if empty
// element already exists in new array
$has_empty = false;
$new_a = [];
foreach ($a as $el) {
if (!empty($el) || !$has_empty) {
$new_a[] = $el;
if (empty($el)) {
$has_empty = true;
}
}
}
echo'<pre>',print_r($new_a),'</pre>';
您可以使用array_filter
:
$first = false;
$result = array_filter($arr, function($k) use($first){
if(empty($k) && !first){
$first = true;
return true;
}
return !empty($k);
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.