在这里使用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