2012-02-11 55 views
1

嘿,我已經得到的數據在我的變量($報告& REP)使用的foreach循環通過將數據從數據庫

注意到它正從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 ['問題'] ['狀態']我得到未定義的索引:狀態。你能告訴我我哪裏可能會出問題嗎?

回答

1

這個怎麼樣:

echo $rep['Issue'][count($rep['Issue'])-1]['status']; 

讓我知道,如果它的工作原理。

0

試試這個

$rep['Issue'][$x]['status'] 

其中$ x是可變的,你可以在一個循環中使用得到的值。

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 
} 
+0

set :: extract實際上是獲取第一條記錄而不是最後一條記錄。 – 2012-02-12 01:59:57

+0

$ rep ['Issue'] [count($ rep ['Issue']) - 1] ['status']這工作..... – 2012-02-12 02:02:55

+0

你確定嗎?我昨天用你發佈的數組測試了這個代碼,Set :: extract提取了最後一個記錄(即$ status [0] =='Complete')。 – 2012-02-12 02:15:22

-1

我試過另一種方法,如果只是想共享。

$ endEl [$ rep ['Report'] ['id']] = end($ rep ['Issue']);

讓我知道它是否是一個好方法..它的工作原理