-1

我有一个数组,我想循环并检查每个键的值是否不为空,并创建一个不包含空值的新数组

请注意,第 3 项和第 5 项为空,因此新数组不应包含这些值。

<?php

   $arrayone = array("item1"=>"bat",
                  "item2"=>"ball",
                  "item3"=>"",
                  "item4"=>"hockey",
                  "item5"=>""); 

?>

我尝试了以下循环,但它给了我一个未定义的偏移错误,请有人让我知道我错过了什么或做错了什么?

环形:

$c=0;
$newarray = array();
foreach ($arrayone as $key => $value) {
   if(!$value==""){
       $newarray[$c] .= $value;

   }
   $c++;
}

此外,形成的新数组有 keys=>1,2,3 而不是 item1,item2,item3

4

1 回答 1

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++;
}
于 2013-01-27T13:36:31.757 回答