0

私はこの配列結果を持っています:

Array
(
    [homeclub] => Array
        (
            [0] => MAGA
            [1] => AGUI
            [2] => BRAV
            [3] => TIBU
        )

    [homeclub_annotation] => Array
        (
            [0] => 3
            [1] => 11
            [2] => 0
            [3] => 8
        )

    [game_inning] => Array
        (
            [0] => 9 inn
            [1] => 10 inn
            [2] => 1 inn
            [3] => 10 inn
        )

    [visitor] => Array
        (
            [0] => CARI
            [1] => LEON
            [2] => TIGR
            [3] => CARD
        )

    [visitor_annotation] => Array
        (
            [0] => 2
            [1] => 10
            [2] => 
            [3] => 10
        )

    [status] => Array
        (
            [0] => FIN
            [1] => FIN
            [2] => SUSP
            [3] => FIN
        )

)

そして、次のような文を作成する必要があります (各サブ配列の位置 0 を例にとります):

INSERT INTO tbl_games (teamA, teamA_annotation, teamB, teamB_annotation, game_date, game_time, game_place, game_status)
VALUES(`MAGA`,
       `3`,
       `9 inn`,
       `CARI`,
       `2`,
       NOW(),
       NULL,
       NULL,
       `FIN`);

サブ配列ごとに正しい位置を取得するにはどうすればよいですか? 作成される文は、サブ配列と同じ位置から値を取得することに注意してください。foreach または for を使用する必要がありますか? これについて何か助けはありますか?

4

2 に答える 2

0

最初に、SQL 挿入を処理する単純な配列を作成する必要があります。

$youArrDefinition = array(..blah blah..);

$rowsToInsert = array();

$rowsToInsert = array();


foreach ( $youArrDefinition as $keyCol =>  $groupCols ) {
    $i = 0;
    foreach( $groupCols as $colVal ) {
        $rowsToInsert[$i][$keyCol] = $colVal;  
        $i++; 
   }

そして、それは次のように操作するためのより良い配列を提供するはずです:

array(
     array(
         'homeclub' => 'blah',
         'homeclub_annotation' => 'blah'
         // blah blah rest array
    ),
    array(
         'homeclub' => 'blah2',
         'homeclub_annotation' => 'blah2'
         // blah2 blah2 rest array2
    ),
    // rest of your array
);

ここにデモがあります

于 2013-10-27T15:07:46.500 に答える