0

私は以下のフォームを持っています、

選択した名前には、ホームかアウェイかを問わず、fixtureId と teamId が含まれfixture[id][home/away][teamid]、選択された値はスコアです。

HTML

<form>
    <select name="fixture[1][home][5]">
        <option value="0">0</option>
        <option value="1">1</option>
    </select>
    <select name="fixture[1][away][10]">
        <option value="0">0</option>
        <option value="1">1</option>
    </select>
    <button type="submit"></button>
</form>

そして、選択した値と組み合わせた選択名の値にアクセスして、これを2つの foreach ループで出力したいと考えています。

echo $fixtureId."-".$venue."-".$teamId."-".$score;

PHP

foreach($_POST['fixture'] as $fixtureId => $fixtureArray){

    foreach($fixtureArray as $venue => $scoreArray){

        echo $fixtureId."-".$venue;

        $teamId =  key($scoreArray[0]); 
        $score = $scoreArray[0];    

    }   
}

$scoreArray

Array
(
    [10] => 0
)

問題

現時点$fixtureIdでは期待どおりに動作していますが、スコアとチーム ID が?!$venueにあるにもかかわらず取得できません。$scoreArray

チーム ID は 10、スコアは 0 にする必要があります。

4

3 に答える 3

1

最初のオプションを選択し、最初の選択を扱っていると仮定しましょう ...

foreach($_POST['fixture'] as $fixtureId => $fixtureArray){
// Now $textureId = 1; $fixtureArray = array("home"=> array(5=> 0));

    foreach($fixtureArray as $venue => $scoreArray){
    // Now $venue = "home"; $scoreArray = array(5 => 0); therefore ...

        echo $fixtureId."-".$venue;

        // There is NO index 0, so there is no key for it
        $teamId =  key($scoreArray[0]); 
        // Again, There is NO index 0
        $score = $scoreArray[0];    

    }   
}

print_r配列のインデックスがわからない場合はいつでも使用してください。

これを修正するには: 単に別のものを使用しないのはなぜforeachですか?

foreach($_POST['fixture'] as $fixtureId => $fixtureArray){
    print_r($fixtureArray)

    foreach($fixtureArray as $venue => $scoreArray){
        print_r($scoreArray);
        echo $fixtureId."-".$venue;

        foreach($scoreArray as $teamId => $score)
        {
            echo($teamId."-".$score);
        }
    }   
}
于 2013-10-02T17:13:03.500 に答える
1

私はあなたが十分に深く入っていないに違いない. foreach()ループの前にこれを試してください:

echo '<pre>'.print_r($_POST['fixture'], true).'</pre>';
于 2013-10-02T16:54:43.217 に答える
0

これを試してください私はこのコードをテストしました

echo '<pre>';print_r($_POST);echo '</pre>';
    foreach($_POST['fixture'] as $fixtureId => $fixtureArray) {
        foreach($fixtureArray as $venue => $scoreArray) {
            echo '<pre>';print_r($scoreArray);echo '</pre>';
            //echo $fixtureId."-".$venue;
            //echo $scoreArray;
            foreach ($scoreArray as $scoreValue) {
                echo "fixtureId ".$fixtureId."-"." venue ".$venue." score value ".$scoreValue."<br />";
            }
            /*$teamId =  key($scoreArray[0]);
            $score = $scoreArray[0];*/

        }
    }

これはあなたのコードです。いくつか更新するだけです。出来た。

于 2013-10-03T04:54:22.977 に答える