嘿,我使用foreach($ report as& rep)
获取了变量中的数据注意它是从数据库中的4个不同的表中获取的东西
现在当我打印我的$ rep时,我得到以下内容:
Array
(
[Report] => Array
(
[id] => 246
[emp] => werock
[name] => werock
[organization] => cakephp
[customer] => great
)
[file] => Array
(
[0] => Array
(
[id] => 211
[report_id] => 246
[file_name] =>
[file_type] =>
[file_size] => 0
[file_error] => 4
[file_tag] => 0
)
)
[Engineer] => Array
(
[0] => Array
(
[id] => 232
[report_id] => 246
)
)
[Issue] => Array
(
[0] => Array
(
[id] => 118
[report_id] => 246
[date_created] => 2012-02-10
[status] => wait
)
[1] => Array
(
[id] => 119
[report_id] => 246
[date_created] => 2012-02-10
[status] => debug
)
[2] => Array
(
[id] => 120
[report_id] => 246
[date_created] => 2012-02-10
[status] => Completed
)
)
)
现在我要做的是访问Issues数组并检查其中有多少个数组。在这种情况下3(0,1,2)。并在这种情况下打印最后一个索引的状态值(2)。
但当我执行$ rep ['Issue'] ['status']时,我得到Undefined index:status。你能告诉我哪里可能出错了。
答案 0 :(得分:1)
这个怎么样:
echo $rep['Issue'][count($rep['Issue'])-1]['status'];
让我知道它是否有效。
答案 1 :(得分:0)
试试这个
$rep['Issue'][$x]['status']
$ x是变量的,你可以在循环中使用来获取值。
答案 2 :(得分:0)
您缺少第二个索引。它应该是:
$rep['Issue'][count($rep['Issue'])-1]['status']
。
您也可以尝试使用Set::extract。 Set类对于使用数组非常有用。
$status = Set::extract('/Issue/.[:last]/status', $rep);
if(count($status)){
// $status[0] == the value of status which is 'Complete' in your example
} else {
// no issues
}
答案 3 :(得分:-1)
如果想分享,我尝试了另一种方法。
$ endEl [$ rep ['Report'] ['id']] = end($ rep ['Issue']);
让我知道这是否是一个好方法..它的工作原理