2012-08-23 28 views
0

不知道這是做我所需要的最好方法,但這是我的問題。在我的編輯函數視圖中,我基於$this->data->expense中的內容重新創建表單字段,但是我需要數組按照特定順序或按錯誤順序生成字段。這是數組我有:在蛋糕中自定義排序數組PHP

'Expense' => array(
    (int) 0 => array(
     'id' => '98', 
     'date' => '2012-08-23', 
     'sitename' => '123', 
     'detail' => 'Breakfast', 
     'amount' => '100.00', 
     'miles' => null, 
     'total' => '100.00', 
     'expense_claim_id' => '63', 
     'created' => '2012-08-23 09:08:52', 
     'modified' => '2012-08-23 09:08:52', 
     'ExpenseClaim' => array(
      'id' => '63', 
      'user_id' => '3', 
      'claim_status_id' => '1', 
      'created' => '2012-08-23 09:08:52', 
      'modified' => '2012-08-23 10:14:10', 
      'approved' => false, 
      'approved_by' => '0', 
      'date_submitted' => '2012-08-23 09:08:52' 
     ), 
     'ExpenseCode' => array(
      (int) 0 => array(
       'id' => '1', 
       'name' => 'Plane fare', 
       'code' => '1', 
       'created' => '2012-07-31 09:52:02', 
       'modified' => '2012-07-31 09:53:57' 
      ) 
     ) 
    ), 

這是我需要它來進行排序(ExpenseCode)出現上漲:

'Expense' => array(
    (int) 0 => array(
     'id' => '98', 
     'date' => '2012-08-23', 
     'sitename' => '123', 
     'detail' => 'Breakfast', 
     'ExpenseCode' => array(
      (int) 0 => array(
       'id' => '1', 
       'name' => 'Plane fare', 
       'code' => '1', 
       'created' => '2012-07-31 09:52:02', 
       'modified' => '2012-07-31 09:53:57' 
      ) 
     ), 
        'amount' => '100.00', 
     'miles' => null, 
     'total' => '100.00', 
     'expense_claim_id' => '63', 
     'created' => '2012-08-23 09:08:52', 
     'modified' => '2012-08-23 09:08:52', 
     'ExpenseClaim' => array(
      'id' => '63', 
      'user_id' => '3', 
      'claim_status_id' => '1', 
      'created' => '2012-08-23 09:08:52', 
      'modified' => '2012-08-23 10:14:10', 
      'approved' => false, 
      'approved_by' => '0', 
      'date_submitted' => '2012-08-23 09:08:52' 
     ) 
    ), 

我怎樣才能做到這一點,並改變它的結構影響當我發佈蛋糕?

+1

你爲什麼需要這個?你不用鑰匙來調用這些值嗎? –

+0

你需要對數組進行排序的標準是什麼? –

回答

1

據我所知,CakePHP沒有內置函數來自定義排序數組。我想你將不得不用純PHP來做到這一點。 https://stackoverflow.com/search?q=custom+sort+array+php

除非你必須有動態創建的字段,我建議你自己添加每個字段。

會改變它的結構影響蛋糕,當我發佈?

不,如果您只是以不同的順序放置這些字段,這不會影響CakePHP。通過POST發送的數據將在數組$this->data['Expense']中排列。使用$this->model->save()保存數據時,順序無關緊要。

+0

同意,休息一下並重新訪問它之後,我重新構造了創建表單助手字段的循環,從而創建了我需要的順序中的字段。我讓自己束縛了數組結構,試圖實現太多動態,而不是硬編碼永遠不會改變的某些元素。感謝您的意見。由於這是與實際問題最相關的答案,我會將其作爲正確答案。 –

0

這沒有任何意義。 如果關聯數組中的數據順序導致您的HTML字段/表單輸入。無論錯誤順序如何,您做錯了。

嘗試使用按鍵,而不是按順序循環。或者閱讀關於關聯數組的更多信息 - 使用&來操縱其數據有很多樂趣/容易的事情......但是再次重申,沒有必要以特定順序返回數據。

編輯:

你總是可以創建鍵的排列,並通過這些重複。可能是管理訂單的一種更清潔的方式。

+1

同意,休息一下並重新訪問它之後,我重構了創建表單助手字段的循環,從而創建了我需要的順序中的字段。 我讓自己捆綁了數組結構,並試圖實現太多的動態,而不是硬編碼一些永遠不會改變的元素。感謝您的意見。 –