0

我正在尝试遍历一个多维数组并将结果存储在一个变量中,以便我可以返回结果并保存它们。也就是说,我在超级信息高速公路上环顾四周......我找不到太多可以帮助我解决问题的东西。这是我到目前为止所尝试的。

public function findPolicyIds($coverageId = null) {
    $policyid = $this->Policy->find('all', array(
        'recursive' => -1,
        'conditions' => array('Policy.coverage_id' => $coverageId),
        'fields' => array('Policy.id')));

        foreach($policyid as $id) {

        }
        return $id;
}

当我运行我的脚本时,我只得到一个结果。如果我在没有 foreach 语句的情况下运行脚本并返回 policyid,我会得到以下结果。

Array
(
[0] => Array
    (
        [Policy] => Array
            (
                [id] => 520015be-2bc8-48ca-b5d1-63ebae78509d
            )

    )

[1] => Array
    (
        [Policy] => Array
            (
                [id] => 520015be-48bc-496d-b8f8-63ebae78509d
            )

    )

[2] => Array
    (
        [Policy] => Array
            (
                [id] => 520015be-5a08-47b6-9e97-63ebae78509d
            )

    )

我只想遍历这些 id,这样我就可以保存它们并将它们返回给另一个方法。

4

1 回答 1

0

循环依次将数组的每个foreach元素分配给变量。它并没有被重置,而是重新分配(对您正在迭代的数组的每个元素)。policyid$id

为了返回一个仅包含 id 的数组,您需要收集它们,然后返回新的集合:

public function findPolicyIds($coverageId = null) {

    ....

    $all = array();
    foreach($policyid as $id) {
        // here we are collecting only the ID value...
        $all[] = $id['Policy']['id'];
    }

    return $all;
}
于 2013-08-05T23:11:36.993 回答