PHP继续循环,除非找到值或到达数组的末尾

jon*_*ich 0 php arrays foreach

我从API返回的数据看起来像this($response):

{
    "data": {
        "connections": [
            {
                "source": 1
            },
            {
                "source": 6
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

那么,我这样做:

$array = json_decode( $response, true );
$results = $array['data']['connections']; 
foreach($results as $member) 
{
    if  ($member['source'] == 6)
    {
        function1();//run this function
        break;
    }
    else 
    {
        //what goes here? //reloop                   
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,如果source等于6,那么我运行该函数然后停止循环.那部分很好.问题是这个.怎么了else?我可能有15或20个不同来源的JSON,我只需要其中一个为6来运行该函数.所以,我需要该函数继续运行,直到它找到一个6 source或者它到达数组的末尾而没有找到6.如果它没有找到6,那么我需要运行一个不同的函数(说,function2).

我如何把它们全部拉到一起?

For*_*ega 6

您可以将此代码放在不同的函数中,并在找到6时返回.如果循环后未找到6,则执行function2

function findTheSix($response){
    $array = json_decode( $response, true );
    $results = $array['data']['connections']; 
    foreach($results as $member) {
          if  ($member['source'] == 6){
            function1();//run this function
            return;
          }
     }
     function2();
}
Run Code Online (Sandbox Code Playgroud)