2013-07-15 2 views
0

Я читал на веб-странице, объясняя, что в PHP требуется более быстрое выполнение для цикла for, чем foreach. Это ново для меня, но я хотел бы проверить это для себя. Как преобразовать foreach в цикл for в PHP? Используя один ниже в качестве примера:Как изменить foreach на цикл for?

foreach ($station->ITEMS->ITEM as $trips=>$trip) { 
    $ny_trips[$trips] = $trip; 
} 

Я видел для петель в PHP, но не с помощью «как» в них. Поэтому я не уверен, как это было бы выглядеть в PHP как цикл for. Будет ли также требовать делать count() $ station-> ITEMS-> ITEM? Благодаря!

+0

Является ли '$ поездки' порядковым номером? –

+0

Также разница в скорости не должна быть заметной. [Clicky] (http://stackoverflow.com/questions/3430194/performance-of-for-vs-foreach-in-php) –

+0

@DaveChen $ trip - это ключ в значении $ key => $. – Edward

ответ

2

Ключи на массиве - идеальная численная последовательность, начинающаяся с 0, тогда это то, что вы ищете.

for($x = 0, $nItems = count($station->ITEMS->ITEM); $x<$nItems; $x++) { 
    $ny_trips[$x] = $station->ITEMS->ITEM[$x]; 
} 

Если ключи не являются числовыми, то или нет в идеальном порядке, тогда вам нужно сделать что-то подобное.

$keys = array_keys($station->ITEMS->ITEM); 
for($x = 0, $nItems = count($station->ITEMS->ITEM);$x < $nItems; $x++) { 
    $ny_trips[$keys[$x]] = $station->ITEMS->ITEM[$keys[$x]]; 
}  
+0

+1, не нужно начинать с нуля, но он должен быть последовательным. –

+0

@DaveChen Просто сказал, что, поскольку я инициализировался в $ x до 0 – Orangepill

+0

, я имею в виду, например, с 'reset' и' key'. –

0
for($i=0;$i < count($station->ITEMS->ITEM);$i++){ 
    $ny_trips[$i] = $station->ITEMS->ITEM[$i]; 
} 
Смежные вопросы