2013-12-11 62 views
0

我需要遍歷一個數組,並編輯每個值但不是不同。通過數組進行迭代運算,並對每個值運行函數

<?php 
Function parseStatus($Input, $Start, $End){ 
    $String = " " . $Input; 
    $Init = StrPos($String, $Start); 

    If($Init == 0){ 
     Return ''; 
    } 

    $Init += StrLen($Start); 
    $Length = StrPos($String, $End, $Init) - $Init; 

    Return SubStr($String, $Init, $Length); 
} 

Function getAllStatuses($Username){ 
    $DOM = new DOMDocument(); 
    $DOM->validateOnParse = True; 
    @$DOM->loadHtml(File_Get_Contents('http://lifestream.aol.com/stream/' . $Username)); 
    $xPath = new DOMXPath($DOM); 

    $Stream = $DOM->getElementById('stream')->nodeValue; // return stream content for display name 
    $Nodes = $xPath->query('//div[@class="stream"]'); 

    $Name = Explode(' ', Trim($Stream)); 
    $User = $Name[0]; 

    $Statuses = Array(); 

    ForEach($Nodes as $Node){ 
     ForEach($Node->getElementsByTagName('li') as $Key => $Tags){ 
      $Statuses[] = $Tags->nodeValue; 
     } 
    } 

    ForEach($Statuses as $Status){ 
     If(StrPos($Status, 'Services')){ 
      Echo 'services is definitely in there'; 
      $New = AIM::parseStatus($Status, $User, 'Services'); 
      Echo $New; 
      Break; 
     } 
    } 
?> 

的問題是,$僅新增回聲的第一個輸出,但我怎麼得到這通過陣列中的每個值運行,做同樣的事情?

預期輸出: [名字開始]我需要[字服務]

然後在陣列中的每個值,做同樣的事情,所以這將會是這樣的:

我需要什麼

再次什麼,我需要,但不同的字符串

感謝您的幫助。

+1

刪除Break;從它.. – Hardy

+0

...我只是在那個笑聲搖搖頭...再次感謝,我很抱歉smh – user2943677

回答

2

您的foreach循環中的Break;很好地打破了循環。

刪除Break;它應該工作。

有一個在這裏閱讀:
http://www.php.net/break

休息結束當前的,的foreach的執行,同時,執行,同時或開關結構。

+0

感謝哈代我意識到這一點,我正在推翻這一個。 – user2943677

+1

是的,它發生了:) – James

+0

謝謝你雖然LOL:P – user2943677

相關問題