1

特定の条件に基づいて、配列にキーと値を追加することは可能でしょうか。このスクリプトは、チーム ID 番号に基づいて複数のチームからスポーツ結果を取得する API 呼び出しを行います。

$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 呼び出し自体の結果に影響を与えることはできません。

私はまったくプログラマーではないので、深みにはなっていませんが、これはアマチュア スポーツ クラブの任意の仕事なので、プログラマーを雇うという選択肢はありません。

Rgds、ボンジクス

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 に答える