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并不是很具有描述性,但我希望你能理解。

这是有效的,因为 -loop 中的第一个赋值for覆盖了“旧”实例,因此$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 回答