1

以下の配列には、 が表示されますuserId = 16。ただし、foreachループを実行すると、が返されますuserId = 1。なぜ戻ってくる116ですか?

Array
(
    [userId] => 16
    [positionTitle] => Array
        (
            [0] => j1
            [1] => j2
        )

    [company] => Array
        (
            [0] => c1
            [1] => c2
        )

    [jobDescription] => Array
        (
            [0] => d1
            [1] => d2
        )

    [startDate] => Array
        (
            [0] => 03/01/2013
            [1] => 03/03/2013
        )

    [endDate] => Array
        (
            [0] => 03/02/2013
            [1] => 03/04/2013
        )

    [jobCity] => Array
        (
            [0] => city1
            [1] => city2
        )

    [jobState] => Array
        (
            [0] => state1
            [1] => state2
        )

)

ループ コード:

foreach($updates as $key => $value){
    echo $key . " " . $value[0] . "<br/>";
}

出力例:

userId 1
positionTitle j1
company c1
jobDescription d1
startDate 03/01/2013
endDate 03/02/2013
jobCity city1
jobState state1
4

1 に答える 1

6

あなたの問題はここにあります:

foreach($updates as $key => $value){
    echo $key . " " . $value[0] . "<br/>";
}

文字列「16」の最初の文字(ゼロ番目の要素)を出力しています。

目的の効果を得るには、コードを次のように変更します。

foreach($updates as $key => $value){
    if(!is_array($value))
       echo $key . " " . $value . "<br/>";
    else
       echo $key . " " . $value[0] . "<br/>";
}
于 2013-03-14T19:02:49.827 に答える