【问题标题】:How can i sort array by value of array [duplicate]如何按数组的值对数组进行排序[重复]
【发布时间】:2015-04-30 14:42:30
【问题描述】:

我在下面给出了数组,我想按 Level 值 1 到 4 对该数组进行排序。

表格:

Array ( [20] => Array ( [sid] => 1020 [L] => 1027 [R] => 1033 [Level] => 1 ) 
    [27] => Array ( [sid] => 1027 [L] => 1030 [R] => 1073 [Level] => 2 )
    [30] => Array ( [sid] => 1030 [L] => 1074 [R] => [Level] => 3 ) 
    [74] => Array ( [sid] => 1074 [L] => [R] => [Level] => 4 ) 
    [73] => Array ( [sid] => 1073 [L] => [R] => [Level] => 3 ) 
    [33] => Array ( [sid] => 1033 [L] => [R] => [Level] => 2 ) )

收件人:

Array ( [20] => Array ( [sid] => 1020 [L] => 1027 [R] => 1033 [Level] => 1 ) 
    [27] => Array ( [sid] => 1027 [L] => 1030 [R] => 1073 [Level] => 2 )
    [33] => Array ( [sid] => 1033 [L] => [R] => [Level] => 2 )
    [30] => Array ( [sid] => 1030 [L] => 1074 [R] => [Level] => 3 ) 
    [73] => Array ( [sid] => 1073 [L] => [R] => [Level] => 3 ) 
    [74] => Array ( [sid] => 1074 [L] => [R] => [Level] => 4 )      
    )

【问题讨论】:

  • 这不只是在级别上排序吗?任何“特定价值”是如何涉及的?
  • 或者更简单的方式:usort($arraytosort,array($this, 'Level'));

标签: php sorting multidimensional-array


【解决方案1】:

你可以使用array_multisort()

<?php
$array = array(
    array('Level'=>1),
    array('Level'=>2),
    array('Level'=>3),
    array('Level'=>4),
    array('Level'=>3),
    array('Level'=>2)
);

$tmp = array();
foreach($array as $r){
    $tmp[] = $r['Level'];
}

array_multisort($tmp,SORT_ASC,$array);

echo '<pre>',print_r($array),'</pre>';

【讨论】:

  • 非常感谢塞缪尔。它的工作
猜你喜欢
  • 2013-07-26
  • 2013-05-11
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
相关资源
最近更新 更多