需要帮助阵列

时间:2013-01-27 13:32:56

标签: php arrays

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

请注意,第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

1 个答案:

答案 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++;
}