Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除除第一个(空)之外的空数组元素_Php_Arrays - Fatal编程技术网

Php 删除除第一个(空)之外的空数组元素

Php 删除除第一个(空)之外的空数组元素,php,arrays,Php,Arrays,是否可以从数组中删除除第一个元素之外的所有空元素?看看这个例子: 起初的 期望结果 这可能吗?实现这一目标的最佳方式是什么 提前感谢您的帮助。简单的解决方案是: $a = array( '0' => 'val1', '1' => 'val2', '2' => 'val3', '3' => '', '4' => 'val4', '5' => 'val5', '6' => 'val6', '7'

是否可以从数组中删除除第一个元素之外的所有空元素?看看这个例子:

起初的 期望结果 这可能吗?实现这一目标的最佳方式是什么

提前感谢您的帮助。

简单的解决方案是:

$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>';
$a=数组(
“0”=>“val1”,
'1'=>'val2',
“2”=>“val3”,
'3' => '',
'4'=>'val4',
“5”=>“val5”,
'6'=>'val6',
'7' => '',
“8”=>“val7”,
'9'=>'val8',
'10'=>'val9',
);
//用于检查是否为空的特殊标志
//元素已存在于新数组中
$has_empty=false;
$new_a=[];
foreach($a作为$el){
如果(!empty($el)| |!$has_empty){
$new_a[]=$el;
如果(空($el)){
$has_empty=true;
}
}
}
echo'',print_r($new_a),'';
简单的解决方案是:

$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>';
$a=数组(
“0”=>“val1”,
'1'=>'val2',
“2”=>“val3”,
'3' => '',
'4'=>'val4',
“5”=>“val5”,
'6'=>'val6',
'7' => '',
“8”=>“val7”,
'9'=>'val8',
'10'=>'val9',
);
//用于检查是否为空的特殊标志
//元素已存在于新数组中
$has_empty=false;
$new_a=[];
foreach($a作为$el){
如果(!empty($el)| |!$has_empty){
$new_a[]=$el;
如果(空($el)){
$has_empty=true;
}
}
}
echo'',print_r($new_a),'';

您可以使用
阵列过滤器


您可以使用
array\u filter


创建一个
foreach
循环。当然,您已经尝试了一些正确的方法?给我们看看吧!Hi@RiggsFolly我不是PHP专家,我尝试了基本的数组过滤器,但当然它会删除所有的空元素,你有什么解决方案吗?谢谢。创建一个
foreach
循环。当然,您已经尝试了一些方法,对吗?给我们看看吧!Hi@RiggsFolly我不是PHP专家,我尝试了基本的数组过滤器,但当然它会删除所有的空元素,你有什么解决方案吗?非常感谢。
$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>';
$first = false;
$result = array_filter($arr, function($k) use($first){
    if(empty($k) && !first){
       $first = true;
       return true;
    }
    return !empty($k);
})