2016-06-09 13 views
-3

Ich möchte ein mehrdimensionales Array in numerischer Reihenfolge bu zweiten Wert jedes Elements sortieren.Sortieren von mehrdimensionalen Array in PHP ohne einen Schlüssel?

Dieses Array ist:

$vulc = array(
     array('s',3), 
     array('s',5), 
     array('s',2) 
    ); 

und ich möchte diese Ausgabe:

$vulc = array(
     array('s',5), 
     array('s',3),   
     array('s',2) 
    ); 

ich das versucht habe:

foreach ($vulc as $key => $row) { 
    $distance[$key] = $row[2]; 
} 

array_multisort($distance, SORT_ASC, $vulc); 

funktioniert aber nicht :(bitte helfen ich und nicht vorschlagen, andere Antwort zu sehen ... normalerweise andere Antwort sind zu schwierig :(

+1

Ich werde Ihre „andere Antwort“ Bemerkung dies ignorieren und verknüpfen, da es wirklich nicht weniger schwierig, als dieses nicht erhalten: http://stackoverflow.com/questions/2699086/sort-multi-dimensional-array-by-value – Loek

+4

Ich habe deine letzte Frage bereits geschlossen und im Duplikat gibt es mehrere Lösungen, wie man es löst: http://stackoverflow.com/q/17364127/3933332 kann ich nicht machen die Antwort ist offensichtlicher. – Rizier123

+0

@ Rizier123 Ich weiß, und ich sehe Ihre verknüpfte Frage ... aber für mich ist zu schwierig, die akzeptierte Antwort in der Frage zu verstehen: ist schwierig Beacause ist groß, ich bin nicht in der Lage mit PHP e, weil ich Italiener bin und don ' t verstehe Englisch – Borja

Antwort

1

Verwenden Sie die usort Funktion und Ausprobieren:

function sortByOrder($a, $b) { 
    return $b[1] - $a[1]; // $b[1] - $a[1] because it need to be descending order 
} 

usort($vulc, 'sortByOrder'); 

Ausgang:

Array 
(
    [0] => Array 
     (
      [0] => s 
      [1] => 5 
     ) 

    [1] => Array 
     (
      [0] => s 
      [1] => 3 
     ) 

    [2] => Array 
     (
      [0] => s 
      [1] => 2 
     ) 

) 
0

Sie sortieren können, und fügen Sie 's' sortierten Array:

<?php 
$vulc = array(
    array('s',3), 
    array('s',5), 
    array('s',2) 
); 

foreach ($vulc as $key => $row) { 
    $distance[] = $row[1]; 
} 

array_multisort($distance, SORT_ASC, $vulc); 

foreach ($distance as $row) { 
    $vulcOut[] = ['s', $row]; 
} 

// $vulcOut = array(
//  array('s',5), 
//  array('s',3), 
//  array('s',2) 
//); 
2

Verwenden rsort()

$vulc = array(
     array('s',3), 
     array('s',5), 
     array('s',2) 
    ); 
rsort($vulc); 
echo "<pre>"; 
print_r($vulc); 

Ausgabe

Array 
(
    [0] => Array 
     (
      [0] => s 
      [1] => 5 
     ) 

    [1] => Array 
     (
      [0] => s 
      [1] => 3 
     ) 

    [2] => Array 
     (
      [0] => s 
      [1] => 2 
     ) 

) 
Verwandte Themen