• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [PHP] Sortowanie tablicy wielowymiarowej

0 głosów
78 wizyt
pytanie zadane 7 stycznia w PHP, Symfony, Zend przez 12david12 Dyskutant (8,070 p.)
zamknięte 7 stycznia przez 12david12

Chcę posortować tablicę:

Array ( [ranking] => Array ( [0] => Array ( [imie] => Dawid [kwota] => 10000 ) [1] => Array ( [imie] => Dawid [kwota] => 0 ) [2] => Array ( [imie] => Dawid [kwota] => 0 ) [3] => Array ( [imie] => Dawid [kwota] => 500 ) [4] => Array ( [imie] => Dawid [kwota] => 500 ) [5] => Array ( [imie] => Dawid [kwota] => 1000 ) [6] => Array ( [imie] => Dawid [kwota] => 5000 ) ) ) 

po wartości "kwota".

To co próbowałem zrobić:

  function sortuj() {
    $myFile = "ranking.json";
    $json = file_get_contents($myFile);
    $json = json_decode($json, TRUE);
    for($i = 0; $i < count($json["ranking"]); $i++) {
      $flag = false;
      for($j = 1; $j < count($json["ranking"]); $j++) {
        if(intval($json["ranking"][$j]["kwota"]) > intval($json["ranking"][$i]["kwota"])) {
          $tmp = $json["ranking"][$i];
          $json["ranking"][$i] = $json["ranking"][$j];
          $json["ranking"][$j] = $tmp;
          $flag = true;
        }
      }
      if($flag == false) break;
    }
  }

Jak mogę to poprawić? Nie ma odpowiedniej wbudowanej funkcji ?

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+1 głos
odpowiedź 7 stycznia przez X3h Dyskutant (9,360 p.)
wybrane 7 stycznia przez 12david12
 
Najlepsza
<?php
$arr = Array( "ranking" => 
    Array (
        Array ("imie" => "Dawid", "kwota" => 10000),
        Array ("imie" => "Dawid", "kwota" => 0),
        Array ("imie" => "Dawid", "kwota" => 0),
        Array ("imie" => "Dawid", "kwota" => 500),
        Array ("imie" => "Dawid", "kwota" => 500),
        Array ("imie" => "Dawid", "kwota" => 1000),
        Array ("imie" => "Dawid", "kwota" => 5000)
    )
);

$kwota = array();
foreach($arr["ranking"] as $key => $row) {
    $kwota[$key] = $row["kwota"];
}
array_multisort($kwota, SORT_ASC, $arr["ranking"]);
print_r($arr);

https://stackoverflow.com/questions/1597736/how-to-sort-an-array-of-associative-arrays-by-value-of-a-given-key-in-php

Podobne pytania

0 głosów
1 odpowiedź 102 wizyt
0 głosów
1 odpowiedź 65 wizyt
pytanie zadane 24 maja 2018 w Java przez Marius Nowicjusz (140 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

64,233 zapytań

110,623 odpowiedzi

231,914 komentarzy

46,971 pasjonatów

Przeglądających: 217
Pasjonatów: 13 Gości: 204

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...