0

foreachループ中にいくつかのオブジェクトを配列に格納しようとしています。問題は、毎回一意のオブジェクトを作成することです。各オブジェクトの名前を追加する何らかのインデックスが必要です。これが私が持っているものです:

function table_rows($html) {
        $dom = new Zend_Dom_Query($html);
        $table_rows = $dom->query('tr');
        $check_array = array();
        foreach ($table_rows as $key=>$table_row) {
            ($check_object . $key) = new check_class;
            ($check_object . $key)->check_method1($table_row);
            ($check_object . $key)->check_method2($table_row);
            ($check_object . $key)->check_method3($table_row);
            $check_array[] = (check_object . $key);
        }
    }

私も近くにいますか?

4

3 に答える 3

2

そのために変数を使用できます。

function table_rows($html) {
    $dom = new Zend_Dom_Query($html);
    $table_rows = $dom->query('tr');
    $check_array = array();
    foreach ($table_rows as $key=>$table_row) {
        $object = new check_class;
        $object->check_method1($table_row);
        $object->check_method2($table_row);
        $object->check_method3($table_row);
        $check_array[] = $object;
    }
}

もちろん、オブジェクトインスタンスの変数に名前を付けること$objectはあまり説明的ではありませんが、理解していただければ幸いです。

これが機能するのは、for-loopの最初の割り当てが「古い」インスタンスを上書きし、$object反復ごとに一意になるためです。

于 2012-08-18T06:15:06.250 に答える
1

Jared Drakeが正しく、あなたが意味するのは、オブジェクト(変数)名ではなく、一意の配列キーである場合。

 $dom = new Zend_Dom_Query($html);
 $table_rows = $dom->query('tr');
 $check_array = array();
 foreach ($table_rows as $key=>$table_row) {
        $check_object = new check_class;
        $check_object->check_method1($table_row);
        $check_object->check_method2($table_row);
        $check_object->check_method3($table_row);
        $check_array['check_object' . $key] = $check_object;
    }
}
于 2012-08-18T06:18:11.277 に答える
0

質問を誤解しているかもしれませんが、メソッドを使用して、ループ内array_pushの配列の最後に各オブジェクトを追加することはできませんか?foreach

于 2012-08-18T06:11:15.190 に答える