循环通过多维数组

时间:2013-08-05 21:16:33

标签: php cakephp cakephp-1.3

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

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,所以我可以保存它们并将它们返回给另一个方法。

1 个答案:

答案 0 :(得分: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;
}