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