Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pominięcie tych samych elementów
Forum PHP.pl > Forum > Przedszkole
arzach
Witam

Mam taki kod
  1. $data['sezon_name'] = 'Sezon 2008,Sezon 2009,Sezon 2010,Sezon 2010,Sezon 2010,Sezon 2010';
  2. $data['zespol_name'] = 'BMW,BMW,Renault,BMW,Toyota,BMW';
  3. $data['zespol_id'] = '3,3,2,3,1,3';
  4.  
  5. $kierowca = array();
  6. $sezon_name = explode(",", $data['sezon_name']);
  7. $zespol_name = explode(",", $data['zespol_name']);
  8. $zespol_id = explode(",", $data['zespol_id']);
  9.  
  10. for ($i=0;$i<count($sezon_name);$i++)
  11. {
  12. if(!isset($kierowca[$i]['sezon_name'][$sezon_name[$i]]))
  13. {
  14. $kierowca[$i] = array('sezon_name' => $sezon_name[$i], 'zespoly' => array());
  15. }
  16. $kierowca[$i]['zespoly'][] = array('zespol_id' => $zespol_id[$i], 'zespol_name'=>$zespol_name[$i]);
  17. }

I mimo to dodaje do tablicy te same nazwy sezonów. Proszę o pomoc jak zrobić by nie dodawało tych samych elementów.
tehaha
zbieraj nazwy sezonów do oddzielnej tablicy i sprawdzaj funkcją in_array() czy taka nazwa została już dodana, jeżeli nie to wtedy dodajesz wpis

gothye
array_unique
arzach
Ja musze mieć wszystko w jednej tablicy a nie w kilku
I z tego kodu
  1. $data['sezon_name'] = 'Sezon 2008,Sezon 2009,Sezon 2010,Sezon 2010,Sezon 2010,Sezon 2010';
  2. $data['zespol_name'] = 'BMW,BMW,Renault,BMW,Toyota,BMW';
  3. $data['zespol_id'] = '3,3,2,3,1,3';
  4.  
  5. $kierowca = array();
  6. $sezon_name = explode(",", $data['sezon_name']);
  7. $zespol_name = explode(",", $data['zespol_name']);
  8. $zespol_id = explode(",", $data['zespol_id']);
  9.  
  10. for ($i=0;$i<count($sezon_name);$i++)
  11. {
  12. if(!isset($kierowca[$i]['sezon_name'][$sezon_name[$i]]))
  13. {
  14. $kierowca[$i] = array('sezon_name' => $sezon_name[$i], 'zespoly' => array());
  15. }
  16. $kierowca[$i]['zespoly'][] = array('zespol_id' => $zespol_id[$i], 'zespol_name'=>$zespol_name[$i]);
  17. }

chciałbym by wyszła taka tablica
Kod
Array
(
    [0] => Array
        (
            [sezon_name] => Sezon 2008
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

    [1] => Array
        (
            [sezon_name] => Sezon 2009
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

    [2] => Array
        (
            [sezon_name] => Sezon 2010
            [zespoly] => Array
                (
            [0] => Array
                        (
                            [zespol_id] => 2
                            [zespol_name] => Renault
                        )
            [1] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )
            [2] => Array
                        (
                            [zespol_id] => 1
                            [zespol_name] => Toyota
                        )

                )

        )


)


A obecnie kod generuje taką tablice
Kod
Array
(
    [0] => Array
        (
            [sezon_name] => Sezon 2008
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

    [1] => Array
        (
            [sezon_name] => Sezon 2009
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

    [2] => Array
        (
            [sezon_name] => Sezon 2010
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 2
                            [zespol_name] => Renault
                        )

                )

        )

    [3] => Array
        (
            [sezon_name] => Sezon 2010
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

    [4] => Array
        (
            [sezon_name] => Sezon 2010
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 1
                            [zespol_name] => Toyota
                        )

                )

        )

    [5] => Array
        (
            [sezon_name] => Sezon 2010
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

)
tehaha
  1. <?php
  2.  
  3. $data['sezon_name'] = 'Sezon 2008,Sezon 2009,Sezon 2010,Sezon 2010,Sezon 2010,Sezon 2010';
  4. $data['zespol_name'] = 'BMW,BMW,Renault,BMW,Toyota,BMW';
  5. $data['zespol_id'] = '3,3,2,3,1,3';
  6.  
  7. $kierowca = array();
  8. $seasons = array();
  9. $sezon_name = explode(",", $data['sezon_name']);
  10. $zespol_name = explode(",", $data['zespol_name']);
  11. $zespol_id = explode(",", $data['zespol_id']);
  12.  
  13. for ($i=0;$i<count($sezon_name);$i++)
  14. {
  15. if(!in_array($sezon_name[$i], $seasons))
  16. {
  17. $seasons[$i] = $sezon_name[$i];
  18. $kierowca[$i] = array('sezon_name' => $sezon_name[$i], 'zespoly' => array());
  19. $kierowca[$i]['zespoly'][] = array('zespol_id' => $zespol_id[$i], 'zespol_name'=>$zespol_name[$i]);
  20. } else
  21. {
  22. $season_key = array_search($sezon_name[$i], $seasons);
  23. $kierowca[$season_key]['zespoly'][] = array('zespol_id' => $zespol_id[$i], 'zespol_name'=>$zespol_name[$i]);
  24. }
  25. }
  26. print_r($kierowca);
  27.  
  28. ?>
Wicepsik
  1. $l=0;
  2. for ($i=0, $c=count($sezon_name);$i<$c;$i++)
  3. {
  4. if($sezon_name[$i] == $sezon_name[$i-1]){
  5. $kierowca[$l]['zespoly'][] = array('zespol_id' => $zespol_id[$i], 'zespol_name' => $zespol_name[$i]);
  6. }else{
  7. $kierowca[++$l] = array('sezon_name' => $sezon_name[$i], 'zespoly' => array(array('zespol_id' => $zespol_id[$i], 'zespol_name' => $zespol_name[$i])));
  8. }
  9. }
  10. print_r($kierowca);
arzach
Dziękuje kod tehaha jest poprawy, ale nazwy zespołów w sezonie się powtarzają dostaje teraz taką tablice.
Kod
Array
(
    [1] => Array
        (
            [sezon_name] => Sezon 2008
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

    [2] => Array
        (
            [sezon_name] => Sezon 2009
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

    [3] => Array
        (
            [sezon_name] => Sezon 2010
            [zespoly] => Array
                (
                    [0] => Array
                        (
                            [zespol_id] => 2
                            [zespol_name] => Renault
                        )

                    [1] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                    [2] => Array
                        (
                            [zespol_id] => 1
                            [zespol_name] => Toyota
                        )

                    [3] => Array
                        (
                            [zespol_id] => 3
                            [zespol_name] => BMW
                        )

                )

        )

)


Cytat(Wicepsik @ 8.08.2010, 17:00:12 ) *
  1. $l=0;
  2. for ($i=0, $c=count($sezon_name);$i<$c;$i++)
  3. {
  4. if($sezon_name[$i] == $sezon_name[$i-1]){
  5. $kierowca[$l]['zespoly'][] = array('zespol_id' => $zespol_id[$i], 'zespol_name' => $zespol_name[$i]);
  6. }else{
  7. $kierowca[++$l] = array('sezon_name' => $sezon_name[$i], 'zespoly' => array(array('zespol_id' => $zespol_id[$i], 'zespol_name' => $zespol_name[$i])));
  8. }
  9. }
  10. print_r($kierowca);



Ten kod jest błędny wywala błąd
Kod
Notice: Undefined offset: -1
tehaha
  1. $data['sezon_name'] = 'Sezon 2008,Sezon 2009,Sezon 2010,Sezon 2010,Sezon 2010,Sezon 2010';
  2. $data['zespol_name'] = 'BMW,BMW,Renault,BMW,Toyota,BMW';
  3. $data['zespol_id'] = '3,3,2,3,1,3';
  4.  
  5. $kierowca = array();
  6. $seasons = array();
  7. $sezon_name = explode(",", $data['sezon_name']);
  8. $zespol_name = explode(",", $data['zespol_name']);
  9. $zespol_id = explode(",", $data['zespol_id']);
  10.  
  11. for ($i=0;$i<count($sezon_name);$i++)
  12. {
  13. if(!in_array($sezon_name[$i], $seasons))
  14. {
  15. $seasons[$i] = $sezon_name[$i];
  16. $kierowca[$i] = array('sezon_name' => $sezon_name[$i], 'zespoly' => array());
  17. $kierowca[$i]['zespoly'][] = array('zespol_id' => $zespol_id[$i], 'zespol_name'=>$zespol_name[$i]);
  18. } else
  19. {
  20. $season_key = array_search($sezon_name[$i], $seasons);
  21. $row = array('zespol_id' => $zespol_id[$i], 'zespol_name'=>$zespol_name[$i]); ;
  22. if(!array_search($row, $kierowca[$season_key]['zespoly']))
  23. {
  24. $kierowca[$season_key]['zespoly'][] = $row;
  25. }
  26. }
  27. }
  28. print_r($kierowca);
arzach
Dziękuje bardzo działa
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.