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);
})