簡體   English   中英

除去第一個(空)以外的空數組元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM