2010-10-12 51 views
0

我一直在尋找PHP教程,我發現一個非常詳細的,對我有用。PHP Api - 結果/數組問題

但現在,我有一個問題。 API顯示的結果存儲在$ results數組中。這是代碼(例如):

$fetch = mysql_fetch_row($go); 
$return = Array($fetch[0],$fetch[1]);  
$results = Array( 
    'news' => Array ( 
     'id' => $return[0], 
     'title' => $return[1] 
    )); 

我的問題是..我想顯示最近10條新聞..我該怎麼做?在正常的PHP/MySQL是可以做到的是:

while($var = mysql_fetch_array($table)) { 
    echo "do something" 
} 

我怎樣才能使它所以$結果可以打印多個結果?

我已經試過這樣的:

while($var = mysql_fetch_array($table)) { 
    $results = Array( 
     'news' => Array ( 
      'id' => $return[0], 
      'title' => $return[1] 
     )); 
} 

但是這隻能說明我一個結果。如果我改變$ results。= Array(...),它會給出錯誤。

我該怎麼辦?

謝謝!

編輯

我的函數讀取當我把它的建議方式,它不讀:

function write(XMLWriter $xml, $data){ 
          foreach($data as $key => $value){ 
            if(is_array($value)){ 
              $xml->startElement($key); 
              write($xml, $value); 
              $xml->endElement(); 
              continue; 
            } 
            $xml->writeElement($key, $value); 
          } 
        } 
        write($xml, $results); 

回答

0
$results[] = Array( 
     'news' => Array ( 
      'id' => $return[0], 
      'title' => $return[1] 
     )); 

應該這樣做。

如果熟悉數組,這是一個array_push();

array_push相當於()把數組作爲一個堆棧,並且推動傳遞的變量到數組的末尾。數組的長度增加了所推送變量的數量。效果如下:

<?php 
$array[] = $var; 
?> 
0

使用[]將元素添加到數組:

$results = array(); 

while($var = mysql_fetch_array($table)) { 
    $results[] = Array( 
     'news' => Array ( 
      'id' => $var[0], 
      'title' => $var[1] 
     )); 
    } 
} 

然後,您可以遍歷$results陣列。這不是一個最佳的結構,但你應該得到它的竅門。

+0

有關使用'$ var [] ='的很酷的事情是,它只是抓取下一個最高密鑰。 – 2010-10-12 19:22:35

+0

我覺得'$ results [] = Array('id'=> $ var [0],'title'=> $ var [1]);'(或者甚至'$ results [$ var [0]] = $ var [1]')會更合適。否則,你會創建不必要的嵌套數組。 – 2010-10-12 19:38:25