1

我想知道是否可以根据某些条件向数组添加键和值。这段脚本发出一个 api 调用,以根据 teamID 号从多个团队检索运动结果。

$length = $numberofTeams
for ($i = 0; $i < $length; $i++) {
    $teamID             = $objTeamID[$i]['Teamid'];
    $teamResults        = 'http://api.com/teamresults/' . $Teamid;
    $dataResults        = file_get_contents($teamResults);
    $objResults[]   = json_decode($dataResults, true);
}

结果是具有以下结构的数组:

Array ( 
    [0] => Array ( 
            [errorcode] => 9995 
            [message] => No results
     ) 
    [1] => Array ( 
            [errorcode] => 1000 
            [message] => Ok, Schedule follows 
            [List] => Array ( 
                        [0] => Array ( 
                            [MatchID] => 7683403 
                            [Number] => 630 
                            [Result] => 2 - 1 
                            [Datum] => 2013-08-27 
                            [Tijd] => 2000 
                            [CompType] => B )
                        [1] => Array ( 
                            [MatchID] => 7683403 
                            [Number] => 630 
                            [Result] => 4 - 0                               [Datum] => 2013-08-27 
                            [Tijd] => 2000 
                            [CompType] => B ) 
                            )
                ) 
    [2] => Array ( 
    [errorcode] => 9995 
    [message] => No results )
)

在将其保存在 MySql 数据库中之前,为了以后使用,我需要将 teamID 变量添加到每个结果中,这样它就会变成:

Array ( 
    [0] => Array ( 
            [errorcode] => 9995 
            [message] => No results
     ) 
    [1] => Array ( 
            [errorcode] => 1000 
            [message] => Ok, Schedule follows 
            [List] => Array ( 
                        [0] => Array ( 
                            [teamID] => 'value from $teamID'
                            [MatchID] => 7683403 
                            [Number] => 630 
                            [Result] => 2 - 1
                            [Datum] => 2013-08-27 
                            [Tijd] => 2000 
                            [CompType] => B )
                        [1] => Array ( 
                            [teamID] => 'value from $teamID'                                [MatchID] => 7683403 
                            [Number] => 630 
                            [Result] => 4 - 0
                            [Datum] => 2013-08-27 
                            [Tijd] => 2000 
                            [CompType] => B ) 
                            )
                ) 
    [2] => Array ( 
    [errorcode] => 9995 
    [message] => No results )
) 

数组的长度不同,结果的数量也不同。我对 api-call 本身的结果没有影响,因为它是由大体育协会设立的。

我绝对不是程序员,所以我无法理解她,但这是业余体育俱乐部的自愿工作,所以聘请程序员是没有选择的。

Rgds,Bonzyx

4

1 回答 1

0
if(isset($objResults[1]['List'])){
    foreach($objResults[1]['List'] as &$listItem){
        $listItem['teamID'] = $teamID;
    }
    unset($listItem); //good practice to unset this reference to last array element
}

你可以用 php 的array_walk()函数做同样的事情,但既然你说你不是程序员,我认为 foreach 方法对你来说更清楚。

于 2013-09-02T13:01:50.933 回答