在這裏使用CakePHP 2.0。標題有點誤導,所以爲了清除事情 - 我有會議陣列,用用戶將它們添加到購物車時填入產品ID。所以這個數組類似於[0] => 25,[1] => 70等等。假設這個數組被稱爲$ products。如何對保存初始狀態的數組進行排序
我想問的是有沒有一些可能性,我可以通過使用'查找'模型的功能('條件'=>數組('Product.id'=> $ products)通過一些Model.field值(如'order'選項),但是通過$ products數組索引,這樣當我在視圖中渲染產品內容時,我將按照用戶添加它們的順序將所有這些產品放入購物車中。
下面是一個例子 - 會議數組$產品:
[0] => 35,
[1] => 15,
[2] => 25
然後,我通過這個數組查找功能的條件:
$list = $this->Product->find('all', array('conditions' => array('Product.id' => $products)));
最終$名單給我陣列的排序條件爲product.id。因此,而不是具有:
[0] => Array
(
[Product] => Array
(
[id] => 35)),
[1] => Array
(
[Product] => Array
(
[id] => 15)),
[2] => Array
(
[Product] => Array
(
[id] => 25))
我得到:
[0] => Array
(
[Product] => Array
(
[id] => 15)),
[1] => Array
(
[Product] => Array
(
[id] => 25)),
[2] => Array
(
[Product] => Array
(
[id] => 35))
到目前爲止,所有的答案並沒有解決我的問題。請仔細關注我給出的例子,這很簡單,但所提供的答案是不同的關鍵。
同樣,我需要最終陣列$列表通過的會議陣列$產品指數進行排序,但是我得到Product.id字段排序$列表,即使我沒有指定任何'find(array('order'=> ...))'
甚至試圖將其設置爲假。
無法理解的問題,但我想這可能會幫助...你不能數組排序保持其初始狀態(因爲你訂購了它),但是你可以存儲它兩次甚至更好,你可以存儲數組的索引到它的初始狀態,這樣你就可以按照你初始狀態(或反之亦然)的順序來定購數組。 $ initial_state_indexes = array_keys($ the_array); – 2012-04-19 13:37:07
同意,問題有點含糊......嘗試用代碼說明您的觀點或從不同的角度來看 – mseancole 2012-04-19 13:44:32
我沒有使用'訂單'。正如我所說的,會話數組$ product包含產品的id,其中索引(來自[0]等等)表示用戶添加的產品序列。 – 2012-04-19 13:47:42