-2

I have given array below i want to sort that array by Level value 1 to 4.

Form :

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 ) )

To:

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 )      
    )
2
  • How is this not just sorting on Level? How is any "specific value" involved? Commented Apr 30, 2015 at 14:45
  • Or a simpler way: usort($arraytosort,array($this, 'Level')); Commented Apr 30, 2015 at 14:46

1 Answer 1

2

You could use 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>';
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.