Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp按数组中的第一项排序_Php_Arrays_Cakephp_Sorting - Fatal编程技术网

Cakephp按数组中的第一项排序

Cakephp按数组中的第一项排序,php,arrays,cakephp,sorting,Php,Arrays,Cakephp,Sorting,我有一个如下所示的数组: Data = array( 'Offer' => array(), 'Country' = array('Name' => Array()) ) 现在,如果我想根据Name数组的第一项的值进行排序,我该如何处理呢 到目前为止我已经试过了: $dataArray = $originalData['data']; $dataArray = Set::sort($dataArray, '{n}.Country.Name', $direction);

我有一个如下所示的数组:

Data = array(
'Offer' => array(),
'Country' = array('Name' => Array()) 
)
现在,如果我想根据
Name
数组的第一项的值进行排序,我该如何处理呢

到目前为止我已经试过了:

  $dataArray = $originalData['data'];
    $dataArray = Set::sort($dataArray, '{n}.Country.Name', $direction);
然而,这并没有起作用

注意im使用CakePHP
set::Sort
是CakePHP的一部分

好吧,看来我还不够清楚,下面是我问题的更详细解释:

因此,我在cake中创建了自己的数据源,用于从API收集数据

API以如下方式返回数据:

data = array(
'Offer' => array('id' => 2, 'name' = 'ExampleName'),
'Stat' => array('Stat1' = 1, 'Stat2' = 2),
'Country => array('Name' => array('name1','name2')
);
 $dataArray = $originalData['data'];
            $dataArray = Set::sort($dataArray, '{n}.Country.Name', $direction);
            $originalData['data'] = $dataArray;
现在,为了让用户能够对这些数据进行排序,我必须确保正确显示

如果只有一个值,即:

                $dataArray = $originalData['data'];
            $dataArray = Set::sort($dataArray, '{n}.Stat.Stat1', 'ASC);
            $originalData['data'] = $dataArray;
然而,country是一个数组,所以为了“复制”上面的代码,我需要使用country['Name']数组的第一项

要这样做:

data = array(
'Offer' => array('id' => 2, 'name' = 'ExampleName'),
'Stat' => array('Stat1' = 1, 'Stat2' = 2),
'Country => array('Name' => array('name1','name2')
);
 $dataArray = $originalData['data'];
            $dataArray = Set::sort($dataArray, '{n}.Country.Name', $direction);
            $originalData['data'] = $dataArray;
但是,上述代码失败…

创建了测试数据:

     $dataArray = array();
     $data = array(
        'Offer' => array('id' => 2, 'name' => 'ExampleName'),
        'Stat' => array('Stat1' => 1, 'Stat2' => 2),
        'Country' => array('Name' => array('z','name2'))
     );
      array_push($dataArray,$data);

      $data = array(
        'Offer' => array('id' => 2, 'name' => 'ExampleName'),
        'Stat' => array('Stat1' => 1, 'Stat2' => 3),
        'Country' => array('Name' => array('a','name2'))
     );
      array_push($dataArray,$data);

     print_r(Set::sort($dataArray,'{n}.Country.Name','asc')); 

与输出数组的链接:

没有收到您的问题,您想要这样的内容吗@AtaurrahimHowdhury蛋糕有一个内置函数来排序,我想用它啊,它给出了什么错误?您是否得到错误排序的数据?因为它对我有用!看看下面的代码:,可能你做了一些不同的事情吗?@AtaurRahimChowdhury我确实修复了它。你的回复给了我一些想法,但并不完全。请将其作为答案发布,我会接受;)