2011-03-03 35 views
0

我有一個第三方腳本,循環每個返回的值並回顯它。將一個Foreach轉換爲一個for循環

我想限制數量爲3循環,但有問題。

電流回路:

foreach($json->data as $v) 
    { 
    echo $v->from->name."<br>"; 
    } 

我想要做的事,如:

for ($i=0;$i<3;$i++) 
       { 
    echo $v->from->name."<br>"; 
} 

是否有任何變通,而無需返工整個腳本。

+0

爲什麼不你想使用一個foreach循環嗎?如果'$ json-> data'是一個對象,你不能循環一個對象。 – BoltClock 2011-03-03 05:59:14

回答

1

如果$ JSON是一個整數索引的數組(雖然我懷疑)

for ($i=0;$i<3;$i++) 
{ 
    echo $json->data->from->name."<br>"; 
} 

否則不太優雅的解決辦法是

$i = 0; 

foreach($json->data as $v) 
{ 
    echo $v->from->name."<br>"; 
    if(++$i == 3) {break;} 
} 

終於

foreach(slice($json->data, 0, 3, TRUE) as $v) 
{ 
    echo $v->from->name."<br>"; 
} 
1

沒有必要將它轉換爲for循環把這樣一個額外的計數器。

$count=0; 
foreach($json->data as $v) 
{ 
    if ($count == 3) 
    { 
    break; 
    } 

    echo $v->from->name."<br>"; 
    $count++; 
} 
1

Slice關閉陣列和遍歷與第一3個元素。