Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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
PHP多维数组与键排序_Php_Sorting_Multidimensional Array_Associative Array - Fatal编程技术网

PHP多维数组与键排序

PHP多维数组与键排序,php,sorting,multidimensional-array,associative-array,Php,Sorting,Multidimensional Array,Associative Array,我有一个如下的数组 Array ( [1236669] => Array ( [banner_type] => OMAX [bannerid] => 1236669 [zone_id] => 119789 [zone_name] => OMAX-Supply - Mobile Web Tablet Interstitial [zone_manager_id] => 76

我有一个如下的数组

Array
(

[1236669] => Array
    (
        [banner_type] => OMAX
        [bannerid] => 1236669
        [zone_id] => 119789
        [zone_name] => OMAX-Supply - Mobile Web Tablet Interstitial
        [zone_manager_id] => 76
        [zone_manager_name] => Thumbtribe Manager
        [banner_name] => THUMBTRIBE_MW_TAB_Interstitial
        [banner_manager_id] => 288
        [banner_manager_name] => OMAX Manager
        [prev_day_req] => 0
    )
)
我希望根据第二级键对二维数组进行排序,这意味着我希望数组为:

Array
(

[1236669] => Array
    (
        [banner_type] => OMAX
        [bannerid] => 1236669
        [banner_name] => THUMBTRIBE_MW_TAB_Interstitial
        [banner_manager_id] => 288
        [banner_manager_name] => OMAX Manager
        [prev_day_req] => 0
        [zone_id] => 119789
        [zone_name] => OMAX-Supply - Mobile Web Tablet Interstitial
        [zone_manager_id] => 76
        [zone_manager_name] => Thumbtribe Manager

    )
)

我尝试了asort、ksort、array\u multisort,但没有任何效果

您必须在主数组的每个子级上使用ksort。像这样

<?php
$array =array ( 1236 => array
        (
            'banner_type' => 'OMAX',
            'bannerid' => 12369,
            'zone_id' => 1197,
            'zone_name' => 'OMAX-Supply - Mobile Web Tablet Interstitial',
            'zone_manager_id' => 76,

        )
    );

foreach ($array as $key => $arr){
    ksort($arr);
    $array[$key] = $arr;
}
echo '<pre>';
    print_r($array);
?>

oneliner解决方案:

     <?php
        $marks =  Array
(

1236669 => Array
    (
        'banner_type' => 'OMAX',
        'bannerid' => '1236669',
        'zone_id' => '119789',
        'zone_name' => 'OMAX-Supply - Mobile Web Tablet Interstitial',
        'zone_manager_id' => '76',
        'zone_manager_name' => 'Thumbtribe Manager',
        'banner_name' => 'THUMBTRIBE_MW_TAB_Interstitial',
        'banner_manager_id' => '288',
        'banner_manager_name' => 'OMAX Manager',
        'prev_day_req' => '0'
    )
);


ksort($marks);
echo "<pre>";
print_r($marks);
echo "</pre>";
?> 
迭代所有关联数组并使用对其键进行排序。

亲爱的,请尝试此代码 如果你的数组是这样的,那么输出就会变成这样

Array
(
      [1236669] => Array
      (
         [banner_type] => OMAX
         [bannerid] => 1236669
         [zone_id] => 119789
         [zone_name] => OMAX-Supply - Mobile Web Tablet Interstitial
         [zone_manager_id] => 76
         [zone_manager_name] => Thumbtribe Manager
         [banner_name] => THUMBTRIBE_MW_TAB_Interstitial
         [banner_manager_id] => 288
         [banner_manager_name] => OMAX Manager
         [prev_day_req] => 0
     )
 )

祝你好运

ksort($ar[1236669])我认为数组的id或键不能正确访问ksort()函数
Array
(
      [1236669] => Array
      (
         [banner_type] => OMAX
         [bannerid] => 1236669
         [zone_id] => 119789
         [zone_name] => OMAX-Supply - Mobile Web Tablet Interstitial
         [zone_manager_id] => 76
         [zone_manager_name] => Thumbtribe Manager
         [banner_name] => THUMBTRIBE_MW_TAB_Interstitial
         [banner_manager_id] => 288
         [banner_manager_name] => OMAX Manager
         [prev_day_req] => 0
     )
 )