简体   繁体   English

在蛋糕 php 中按 id 对数据进行排序

[英]sort data by id in cake php

where i want to sort it.我想在哪里排序。 following array..以下数组..

$a = array(
    (int) 152 => array(
        'id' => '152',
        'name' => 'Grade 3: Unit #1: erewtrewt',
        'sortByFld' => '103'
    ),
    (int) 168 => array(
        'id' => '168',
        'name' => 'Grade 3: Unit #20: ##Media## worksheet',
        'sortByFld' => '2003'
    ),
    (int) 94 => array(
        'id' => '94',
        'name' => 'Grade 3: Unit #1: test worksheet',
        'sortByFld' => '103'
    ),
    (int) 98 => array(
        'id' => '98',
        'name' => 'Grade 3: Unit #1: 1234',
        'sortByFld' => '103'
    ),
    (int) 183 => array(
        'id' => '183',
        'name' => 'Grade 3: Unit #1: match ddd',
        'sortByFld' => '103'
    )
);

and i want array like我想要像这样的数组

$a = array(

    (int) 94 => array(
        'id' => '94',
        'name' => 'Grade 3: Unit #1: test worksheet',
        'sortByFld' => '103'
    ),

    (int) 98 => array(
        'id' => '98',
        'name' => 'Grade 3: Unit #1: 1234',
        'sortByFld' => '103'
    ),

    (int) 152 => array(
        'id' => '152',
        'name' => 'Grade 3: Unit #1: erewtrewt',
        'sortByFld' => '103'
    ),

    (int) 183 => array(
        'id' => '183',
        'name' => 'Grade 3: Unit #1: match ddd',
        'sortByFld' => '103'
    ),
    (int) 168 => array(
        'id' => '168',
        'name' => 'Grade 3: Unit #20: ##Media## worksheet',
        'sortByFld' => '2003'
    )
);

notice that, i need sort by sortByFID wise if sortByFID id common then sort their id ascending order.请注意,如果 sortByFID id 常见,我需要按 sortByFID 排序,然后按升序对它们的 id 进行排序。

i tried like this in cake php我在蛋糕 php 中试过这样

$a = Set::sort($tests, '{n}.sortByFld', 'asc');
$a = Hash::combine($tests, '{n}.id',  '{n}.name');

i am new in cake php, and i am still get struggle to solve it.我是蛋糕 php 的新手,我仍然很难解决它。

You can do sorting in cake php like:您可以在蛋糕 php 中进行排序,例如:

Hash::sort($tests, '{n}.id', 'asc');

umm it seems to much complicated, well you can first sort id, then sort sortByFld it will work.嗯,这似乎很复杂,您可以先对 id 进行排序,然后对 sortByFld 进行排序,这样就可以了。

just like.就像。

$id = Set::sort($tests, '{n}.id', 'asc');
$a = Set::sort($id, '{n}.sortByFld', 'asc');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM