我有一个数组我要循环检查并检查每个键的值是否为空,并创建一个不包含空值的新数组:
请注意,第3项和第5项为空,因此新数组不应包含这些值。
<?php
$arrayone = array("item1"=>"bat",
"item2"=>"ball",
"item3"=>"",
"item4"=>"hockey",
"item5"=>"");
?>
我尝试了以下循环,但它给了我一个未定义的偏移错误,请有人让我知道我错过了什么或做错了吗?
LOOP:
$c=0;
$newarray = array();
foreach ($arrayone as $key => $value) {
if(!$value==""){
$newarray[$c] .= $value;
}
$c++;
}
形成的新数组还有keys =&gt; 1,2,3而不是item1,item2,item3
答案 0 :(得分:0)
$ newarray [$ c]。= $ value;第一次联系空$ newarray [$ c]
更改您的代码添加if(!isset($newarray[$c]))
<?php
$arrayone = array("item1"=>"bat","item2"=>"ball","item3"=>"","item4"=>"hockey","item5"=>"");
$c=0;
$newarray = array();
foreach ($arrayone as $key => $value) {
if(!$value==""){
if(!isset($newarray[$c]))
$newarray[$c] = '';
$newarray[$c] .= $value;
}
$c++;
}