2013-02-27 40 views
0

我想通过几个关键字对以下多维数组进行排序 - 让我以一种简单的方式解释。排序一个多维数组

这是我的多维数组的部分看起来怎么样

[template] => Array 
      (
       [0] => Array 
        (
         [KeyA] => 123 
         [KeyB] => ABC 
         [KeyC] => #FFFFF 
         [custom] => Array 
          (
           [0] => Array 
            (
             [value] => bla 
             [var] => 2 
            ) 

           [1] => Array 
            (
             [value] => c1 
             [var] => 5 
            ) 

          ) 

        ) 
      ) 

有吨多维数组的该模板阵列中,我希望他们现在进行排序,例如通过KeyC(#00000第一PRIO,# FFFFFF第二prio,#333333第三prio),然后按KeyA字母。

如何做到这一点?

+2

奇怪的和神秘的逻辑会在'#000000'和'#333333'之间指定'#ffffff'吗? – Madbreaks 2013-02-27 04:11:09

+0

Posiby重复的问题 http://stackoverflow.com/questions/3511954/php-sorting-object-array-by-certain-criteria – martriay 2013-02-27 04:11:32

+0

是什么'KeyC'你的排序逻辑? '#000000'>'#FFFFFF'>'#333333'?对我没有意义 – Raptor 2013-02-27 04:15:58

回答

0

PHP有几个功能,与分选阵列和后面数组排序的逻辑处理是:

  • 基于数组键某种,而另一些由值:$阵列[“键”] = '值';

  • 与否的键和值之间的相关性被排序之后保持,这可能意味着将密钥数值复位(0,1,2 ...)

  • 排序的顺序:字母,从低到高(升序),高到低(降序),数值,自然,随机的,或者用户定义

  • 如果为相等,则顺序是未定义的任何这些排序函数评估两个部件(在排序不稳定)。

注意:所有这些排序函数直接作用于数组变量本身,而不是返回一个新的排序数组。

排序的主要功能描述http://www.php.net/manual/en/array.sorting.php和创建自定义排序,你必须使自己最适合的技巧。