2013-06-20 4 views
-4

здесь массивзаменить последний элемент в массиве PHP

$item = new rssGenerator_item(); 
$query_rss = mysql_query("SELECT * FROM `trades` WHERE `app` = '1' ORDER BY `id` DESC LIMIT 10 ")OR die(mysql_error()); 
while($row_rss = mysql_fetch_array($query_rss)){ 
    $item->title = $row_rss['unit']; 
    $item->description = excerpt($row_rss['message'],30); 
    $item->link = 'http://injaa.com/'.$row_rss['link']; 
    $item->guid = $row_rss['site']; 
    $item->pubDate = RelativeTime($row_rss['tarikh']); 
    $rss_channel->items[] = $item; 
} 
$rss_feed = new rssGenerator_rss(); 
$rss_feed->encoding = 'UTF-8'; 
$rss_feed->version = '2.0'; 
header('Content-Type: text/xml'); 
echo $rss_feed->createFeed($rss_channel); 

на этой линии

$rss_channel->items[] = $item; 

все значения до этого ясного и замены последнего значения в массив !! i dont теперь, где код неправильный?

+1

не уверен, что вы просите здесь. что вы ожидаете от этого, и что он на самом деле делает? – jammypeach

+1

http://php.net/manual/en/function.mysql-query.php см. Большую красную коробку? вы должны прочитать его;) – Pinoniq

+0

на самом деле я хочу добавить элемент в массив с while loop и print array – shahriyar3

ответ

3

Использование

array_push($rss_channel->items, $item); 

В верхней части (до while) добавить

$rss_channel->items = array(); 
+0

Это вызовет предупреждение, если '$ rss_channel-> items' еще не массив, тогда как' $ rss_channel-> items [] = $ item; 'будет инициализировать' $ rss_channel-> items' как массив, если он isn уже; эта часть не обязательно ошибочна. – Crontab

+0

@MR Srinivas tnx для ответа, но is'nt работает! в петле последний элемент заменить на все – shahriyar3

+0

@ shahriyar3: Нет шансов на замену. Я думаю, что вы ошибаетесь в использовании 'foreach' вместо' while' – mrsrinivas

0

Хотя @Mr Шринивас ответ лучше, лично я бы переписать так:

$items = array(); 
while($row_rss = mysqli_fetch_array($query_rss)){ 
    $items[] = $item; 
} 
$rss_channel->items = $items; 

По общему признанию, у меня нет знаний, чтобы объяснить, почему это лучше, вот как это имеет смысл для m е.

+1

Лично я бы не рекомендовал использовать mysql_fetch_array. :) скорее pdo или mysql функции – Robert

+0

Если '$ rss_channel-> items' уже является массивом, вы просто добавляете ненужный шаг здесь. – Crontab

+0

@Robert yep совершенно прав, хотя я только реорганизовал код OP - отредактировал ответ. – jammypeach

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