2011-04-20 182 views
0
foreach ($this->CsInventory as $value) 
    { 

    print_r($value) // print 1 
    $vname = $value[] = $value['VesselName']; 
    $total = $value[] = $value['Total']; 
    $Box = $value[] = $value['Box']; 

     print_r($value); // print 2 

     $rdata .= '<td>'.$vname.'</td> 
      <td>'.$total.'</td> 
      <td>'.$Box.'</td>';     
    } 

打印1去除陣列空值

Array 
(
    [VesselName] => MARIANNE 
    [Total] => 13838 
    [Box] => 1156 
) 
Array 
(
    [Box] => 154 
) 
Array 
(
    [Box] => 3825 
) 
Array 
(
    [Box] => 50571 
) 

打印2

Array 
(
    [VesselName] => MARIANNE 
    [Total] => 15452 
    [Box] => 1156 
    [0] => MARIANNE 
    [1] => 15452 
    [2] => 1156 
) 
Array 
(
    [Box] => 2276 
    [0] => 
    [1] => 
    [2] => 2276 
) 
Array 
(
    [Box] => 3825 
    [0] => 
    [1] => 
    [2] => 3825 
) 
Array 
(
    [Box] => 49235 
    [0] => 
    [1] => 
    [2] => 49235 
) 

我怎樣才能我刪除數組中的一個空值?我嘗試了很多方法,但我可以得到任何解決方案..所以決定在這裏在論壇?

+2

可能重複的[刪除空數組元素](http://stackoverflow.com/questions/3654295/remove-empty-array-elements)和其他人:[http://stackoverflow.com/search? q =刪除+空+ vaues +陣列+ PHP](http://stackoverflow.com/search?q=remove+empty+vaues+array+php)。詢問前請使用搜索功能。 – Gordon 2011-04-20 08:02:57

回答

4

我會盡量減少工作量。

foreach ($this->CsInventory as $value) 
    { 
     foreach ($value as $key => $item) 
     { 
      $value[] = $item; 
      $rdata .= "<td>$item</td>"; 

     } 

     print_r($value)     
    } 

作爲一般性評論,不知道爲什麼要添加anonomous值回$values堆棧,可能會更好地使用不同的陣列。

1

如果你想擺脫的特定數組元素,可以使用

if($value['VesselName']) {$vname = $value[] = $value['VesselName'];} 

,而不是簡單地使用unset($array[$key]);

你也可以阻止他們進入擺在首位的陣列

$vname = $value[] = $value['VesselName']; 
0
function array_remove_empty($arr){ 
    $narr = array(); 
    while(list($key, $val) = each($arr)){ 
     if (is_array($val)){ 
      $val = array_remove_empty($val); 
      // does the result array contain anything? 
      if (count($val)!=0){ 
       // yes :-) 
       $narr[$key] = $val; 
      } 
     } 
     else { 
      if (trim($val) != ""){ 
       $narr[$key] = $val; 
      } 
     } 
    } 
    unset($arr); 
    return $narr; 
} 

array_remove_empty(array(1,2,3, '', array(), 4)) => returns array(1,2,3,4)