2010-10-12 4 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" 
} 

Как я могу сделать так, чтобы результаты $ print могли печатать несколько результатов?

Я попытался, как:

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 [] =' заключается в том, что она просто захватывает следующий самый высокий ключ. –

+0

Я думаю '$ results [] = Array ('id' => $ var [0], 'title' => $ var [1]);' (или даже '$ results [$ var [0]] = $ var [1] ') было бы более уместным. В противном случае вы создадите ненужные вложенные массивы. –

Смежные вопросы