2015-05-06 44 views
4

我想在多循環內嵌入多循環數組。Implode Inside For循環

$_POST['PprodName']; 

在這種$_POST['PprodName']我有一個值:

Array ([0] => steel mj23 [1] => [2] => [3] => [4] => [5] => [6] => [7] =>) 

steel mj23是我的第一個產品名稱。

現在我想根據它們的位置檢查元素是否爲空。所以我申請了一個for循環,但不知道如何爆炸元素的非空。

我想只打破那些非空的元素。

這是我的for循環。

for($i=0; $i < count($_POST['PprodName']); $i++) { 
        if(!empty($_POST['PprodName'][$i])) { 
         print_r($_POST['PprodName'][$i]); 
        } 
       } 

回答

8

您不需要for循環。只需使用array_filter()篩選出所有空值,然後你可以簡單地使用implode(),像這樣:

echo implode(", ", array_filter($_POST['PprodName'])); 
+0

謝謝@ Rizier123。謝了,兄弟。有用。 – Someone

+2

@WaseemAhmed不客氣! (僅供參考:您可以接受最能幫助您的答案並解決您的問題(http://meta.stackexchange.com/q/5234)!) – Rizier123

+0

乾淨整潔。 –

0

嘗試這種方式 Online Demo

$data=Array (0 => "steel mj23", 1 =>'test' ,2 =>'', 3 =>'' ,4 =>"", 5 =>"", 6 =>"", 7 =>""); 
$result=Array(); 
foreach($data as $key=>$value) 
{ 
    if(!empty($value)) 
     $result[]=$value;   
} 
var_dump($result); 
+0

它也可以正常工作,但它hink array_fileter()是所有問題的父親(檢查空數組) – Someone

+0

@WaseemAhmed你認爲array_filter()更好,但接受這個答案?!你知道你只能接受一個答案?! – Rizier123

+0

@ Rizier123好的。撤消並完成。抱歉。我是新的stackoverflow – Someone

0
<?php 
    $array = array(
     'fruit1' => 'apple', 
     'fruit2' => 'orange', 
     'fruit3' => ' ', 
     'fruit4' => ' ', 
     'fruit5' => 'apple'); 

     for ($i = 0; $i < count($array); $i++) { 
     $key=key($array); 
     $val=$array[$key]; 
     if ($val<> ' ') { 
      echo $key ." = ". $val ." <br> "; 
      } 
     next($array); 
     } 


    /* fruit1 = apple 
    fruit2 = orange 
    fruit5 = apple 
    */ 
    ?>