Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wielowymiarowa tablica asocjacyjna - wybieranie wierszy
kardi3
post 16.10.2012, 21:01:54
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 17.07.2011

Ostrzeżenie: (0%)
-----


Witam,
mam pewien problem do rozwiązania
polecenie brzmi :
Wypisz tablicę użytkowników(users) którzy mają więcej niż 6000 punktów. Pożądane jest zachowanie kluczy.

  1. $users = array(
  2. 17375 => array(
  3. 'id' => 17375,
  4. 'nick' => 'Aniela',
  5. 'points' => 5908,
  6. 'created' => '2009-09-26 14:41:47',
  7. ),
  8. 20871 => array(
  9. 'id' => 20871,
  10. 'nick' => 'poziomka777',
  11. 'points' => 4804,
  12. 'created' => '2009-10-04 20:31:09',
  13. ),
  14. 41787 => array(
  15. 'id' => 41787,
  16. 'nick' => 'doroo',
  17. 'points' => 8805,
  18. 'created' => '2009-11-02 17:07:48',
  19. ),
  20. 13585 => array(
  21. 'id' => 13585,
  22. 'nick' => 'madzia333',
  23. 'points' => 8805,
  24. 'created' => '2009-09-11 21:46:21',
  25. )
  26. );


Wymyśliłem takie rozwiązanie ale zapewne jest jakieś prostsze. Mógłby ktoś podpowiedzieć jak zoptymalizować rozwiązanie tego zadania?

  1. function wypisz_uzytkownikow2($uzytkownicy)
  2. {
  3. $new_users = array_values($uzytkownicy); // zamieniamy tablice na indeksowaną
  4. for($i=0;$i<count($new_users);$i++)
  5. {
  6. if($new_users[$i]['points']>6000) //wybieramy wiersze z odpowiednią ilością punktów
  7. {
  8. $new_users2[$i] = $new_users[$i]; // przypisujemy odpowiednie wiersze do nowej tablicy
  9. }
  10.  
  11. }
  12. return $new_users2;
  13. }
  14. $wynik = wypisz_uzytkownikow2($users);
  15. $wynik2 = array_values($wynik); // usuwamy z nowej tablicy puste wiersze
  16. unset($users);
  17. foreach($wynik2 as $result)
  18. {
  19. $key = $result['id']; // tworzymy klucz nowej tablicy asocjacyjnej
  20. $users[$key]=$result; // w tablicy asocjacyjnej przypisujemy klucz i wartości
  21. }
  22. var_dump($users);
  23.  
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:14