Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Utworzenie tablicy powtarzających się elementów
Forum PHP.pl > Forum > Przedszkole
arzach
Witam mam taki kod
  1. $table[] = array('druzyna_name' => 'Polonia Warszawa', 'punkty' => 9);
  2. $table[] = array('druzyna_name' => 'Jagiellonia Bialystok', 'punkty' => 7);
  3. $table[] = array('druzyna_name' => 'GKS Belchatow', 'punkty' => 7);
  4. $table[] = array('druzyna_name' => 'Wisla Krakow', 'punkty' => 6);
  5. $table[] = array('druzyna_name' => 'Legia Warszawa', 'punkty' => 6);
  6. $table[] = array('druzyna_name' => 'Arka Gdynia', 'punkty' => 4);
  7.  
  8.  
  9.  
  10. function recurring_items(array $table){
  11. $table_powtorzen = array();
  12. $table_powtorzen_temp = array();
  13.  
  14. foreach($table AS $key => $value){
  15. if(in_array($value['punkty'], $table_powtorzen_temp)){
  16. $table_powtorzen[]=$value;
  17. } else {
  18. $table_powtorzen_temp[] = $value['punkty'];
  19. }
  20. }
  21. return $table_powtorzen;
  22. }
  23.  
  24.  
  25.  
  26. echo '<pre>';
  27. print_r(recurring_items($table));
  28. echo '</pre>';


Potrzebuje utworzyć nowa tablice z drużynami u których powtarzają sie pkt. Kod który napisałem działa ale nie dodaje wszystkich drużyn. Proszę o pomoc w napisaniu tego.

Wynik jaki chce otrzymać
  1. <?php
  2. $table_powtorzen[] = array('druzyna_name' => 'Jagiellonia Bialystok', 'punkty' => 7);
  3. $table_powtorzen[] = array('druzyna_name' => 'GKS Belchatow', 'punkty' => 7);
  4. $table_powtorzen[] = array('druzyna_name' => 'Wisla Krakow', 'punkty' => 6);
  5. $table_powtorzen[] = array('druzyna_name' => 'Legia Warszawa', 'punkty' => 6);
  6. ?>


Czy nikt nie jest w stanie mi pomóc ?
nospor
Tak na dobrą sprawę do problem jest prosty.

  1. $table[] = array('druzyna_name' => 'Polonia Warszawa', 'punkty' => 9);
  2. $table[] = array('druzyna_name' => 'Jagiellonia Bialystok', 'punkty' => 7);
  3. $table[] = array('druzyna_name' => 'GKS Belchatow', 'punkty' => 7);
  4. $table[] = array('druzyna_name' => 'Wisla Krakow', 'punkty' => 6);
  5. $table[] = array('druzyna_name' => 'Legia Warszawa', 'punkty' => 6);
  6. $table[] = array('druzyna_name' => 'Arka Gdynia', 'punkty' => 4);
  7.  
  8. $table2 = array();
  9. foreach($table AS $key => $value){
  10. if (!isset($table2[$value['punkty']]))
  11. $table2[$value['punkty']] = array();
  12. $table2[$value['punkty']][] = $value;
  13. }
  14.  
  15. $table3 = array();
  16. foreach ($table2 as $v){
  17. if (count($v) > 1)
  18. $table3 = array_merge($table3,$v);
  19. }
  20. print_r($table3);
arzach
Dziękuje działa. Sam próbowałem w ten sposób
  1. function filtruj($wartosc) {
  2. return $wartosc>1;
  3. }
  4.  
  5. function array_duplicates($pieces) {
  6. $pieces = array_count_values($pieces);
  7.  
  8. $pieces = array_filter($pieces, 'filtruj');
  9. //$pieces = array_keys($pieces);
  10.  
  11. return $pieces;
  12. }
  13.  
  14.  
  15. $table_powtorzen_temp = array();
  16. $table_powtorzen = array();
  17.  
  18.  
  19. foreach($table AS $value){
  20. $table_powtorzen_temp[] = $value['punkty'];
  21. }
  22.  
  23. foreach($table AS $value){
  24. if(isset($table_powtorzen_temp[$value['punkty']])){
  25. $table_powtorzen[] = $value;
  26. }
  27. }


Jeszcze raz bardzo dziękuje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.