• 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

VPS Starter Arubacloud
0 głosów
1,204 wizyt
pytanie zadane 7 stycznia 2019 w PHP przez niezalogowany
zamknięte 7 stycznia 2019

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ź

0 głosów
odpowiedź 7 stycznia 2019 przez X3h Dyskutant (9,540 p.)
wybrane 7 stycznia 2019
 
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ź 134 wizyt
0 głosów
1 odpowiedź 457 wizyt
0 głosów
1 odpowiedź 928 wizyt
pytanie zadane 24 maja 2018 w Java przez Marius Nowicjusz (140 p.)

93,020 zapytań

141,985 odpowiedzi

321,287 komentarzy

62,366 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...