0

私はphpを初めて使用しますが、なぜこれが機能しないのかわかりません。誰かが私を助けてもらえますか?ありがとう!私のコードは以下の通りです:

if (!$this->_in_multinested_array($over_time, $request_year)) {
            $temp = array('name'=>$request_year, 'children'=>array());
            array_push($over_time, $temp);
        }

        if (!$this->_in_multinested_array($over_time, $request_month)) {

            $child = array('name'=>$request_month, 'children'=>array());

            foreach ($over_time as $temp) {

                if ($temp['name'] == $request_year) {
                   array_push($temp['children'], $child);
                }
            }
        }

このコードの結果を確認するときはいつでも、temp['children']配列は空であるべきではないのに常に空です。

4

1 に答える 1

2

このループの各$tempはコピーです。

    foreach ($over_time as $temp) {

        if ($temp['name'] == $request_year) {
           array_push($temp['children'], $child);
        }
    }

コピーを作成する代わりに配列を変更したいので、参照を使用する必要があります。

    foreach ($over_time as &$temp) {

        if ($temp['name'] == $request_year) {
           array_push($temp['children'], $child);
        }
    }
于 2012-06-15T18:52:14.517 に答える