2012-01-11 2 views
0

У меня есть этот XML-ответ, на который я буду делатьПолучить первые 18 результатов в SimpleXMLElement Object

foreach($response->entry->item as $data) 

но $ данных содержит больше массивов (20), чем мне нужно (18). Поэтому я попытался сделать array_slice, но, как вы знаете, это не сработает.

Какие еще решения я мог бы попробовать?

+1

использовать 'for' вместо этого? – k102

+0

lol, очевидно ... попробовав прямо сейчас. Большое спасибо. – Alex

+0

вы делаете это так, как будто бы с любым другим массивом – Gordon

ответ

1

Вы можете попытаться ограничить набор результатов данными, выбранными вами из xml через xpath.

$string = <<<XML 
<?xml version='1.0'?> 
    <document> 
     <item id="1" /> 
     <item id="2" /> 
     <item id="3" /> 
     <item id="4" /> 
     <item id="5" /> 
     <item id="6" /> 
    </document> 
XML; 

$xml = simplexml_load_string($string); 
var_dump($xml->xpath("//item[@id>2 and @id<5]")) // Prints the two nodes matching the condition from the xpath 

Как было предложено из комментариев можно также просто цикл по массиву с for вместо foreach и ограничить число итераций.

+0

Я попробую использовать для @ k102, я думаю, что так лучше. Tnx – Alex