2011-04-06 60 views
0

我遇到了將對象推入數組的問題。陣列推送問題

這裏是我的對象

Products Object 
(
    [id] => 
    [title] => Titel 
    [articlenumber] => Artikelnummer 
    [price] => Prijs 
    [sale_price] => Sale Prijs 
    [description] => Tekst 
    [views] => 1 
    [brand] => Merk 
    [soled] => 0 
    [start_date] => 2011-04-21 
    [end_date] => 2011-04-28 
    [active] => 2 
    [sale_text] => Sale Tekst 
) 

這裏是我的陣列我tryed推動一切到一個數組

Array 
(
    [0] => title, Titel 
    [1] => articlenumber, Artikelnummer 
    [2] => price, Prijs 
    [3] => sale_price, Sale Prijs 
    [4] => description, Tekst 
    [5] => views, 1 
    [6] => brand, Merk 
) 

正如你可以看到,當他來的項目「膠底」我的代碼將停止,它是這樣做的,因爲它的值是0.當我把這個值放到別的東西上時,如果工作正常的話。

這裏是我使用的代碼。

  $value = array(); 

     while (next($Product)) { 
      $constant = key($Product); 
      array_push($value, $constant.", ".$Product->$constant);   
      echo $constant."<br>"; 
     } 

回答

1

我不知道你確切的需求,但它的價值嘗試簡單的轉換爲數組。

$value = (array) $Product; 

您的cvrrent方法的問題似乎是零評估爲false,我認爲嚴格的比較應該解決這個問題。

$value = array(); 

    while (next($Product) !== false) { 
     $constant = key($Product); 
     array_push($value, $constant.", ".$Product->$constant);   
     echo $constant."<br>"; 
    } 

在其他答案的foreach可能是一個更好的主意無論如何,但如果你喜歡無論什麼原因,while循環,你需要注意對零的比較。

1

使用foreach循環可能是一個更好的主意,在這種情況下:

$value = array(); 
foreach($obj as $key => $val) 
{ 
    array_push($value, sprintf("%s, %s", $key, $val)); 
}