2017-01-02 2 views
1

Ich habe ein Array wie folgt und ich möchte dieses Array aufsteigend und absteigend mit dem Wert des Schlüssels "min_price" bestellen. Ich habe versucht und ich folgte this link immer noch nicht richtig funktioniert. Jede Hilfe würde sehr geschätzt werden.Wie sortiere ich ein mehrdimensionales Array aufsteigend und absteigend?

Dies ist das Array:

Array 
    (
     [0] => Array 
      (
       [property_id] => 116 
       [min_price] => 3487 
      ) 

     [1] => Array 
      (
       [property_id] => 131 
       [min_price] => 3035 
      ) 

     [2] => Array 
      (
       [property_id] => 171 
       [min_price] => 7999 
      ) 
    ) 

     function cmp($a, $b) { 
    if ($a['min_price'] == $b['min_price']) { 
     return 0; 
    } 
    return ($a['min_price'] < $b['min_price']) ? -1 : 1; 
} 
uasort($data, 'cmp'); 

ich dieses Array auf- und absteigender Reihenfolge verwenden möchten.

+1

Sortierung Was versuchen haben Sie speziell aus der referenzierten Frage? –

+0

@MichaelSacket ich benutze diese Funktion cmp ($ a, $ b) { if ($ a ['Angriff'] == $ b ['Angriff']) { return 0; } Rückkehr ($ a ['Angriff'] <$ b ['Angriff'])? -1: 1; } uasort ($ Daten, 'cmp'); –

+0

Sie müssen den Schlüssel 'attack' durch' min_price' ersetzen. –

Antwort

0

Sie können den neuen Combined-Vergleich Operator (AKA Spaceship) (seit PHP-7) verwenden:

// Integers 
echo 1 <=> 1; // 0 
echo 1 <=> 2; // -1 
echo 2 <=> 1; // 1 

Mehr Informationen im announcement.

So könnte man schreiben:

usort($Array, function($a, $b) { 
           return $a['min_price'] <=> $b['min_price']; 
           }); 

Hope this Hilfe

0

hier ist ein Beispiel für

<?php 
    $array = array(
    0 =>array(
     'name' => 'Rnukir', 
     'total' => '1'), 
    1 => array(
     'name' => 'Arnesista', 
     'total' => '2'), 
    2 => array(
     'name' => 'Omas', 
     'total' => '3'), 
    3 => array(
     'name' => 'John', 
     'total' => '4') 
); 
foreach ($array as $key => $row) { 
    $name[$key] = $row['name']; 
    $total[$key] = $row['total']; 
} 
print_r($total); 

array_multisort($total, SORT_DESC, $array); 
// array_multisort($total, SORT_DESC, $name, SORT_ASC $array); 
echo "<pre>"; 
    print_r($array); 
echo "</pre>"; 
?> 
Verwandte Themen