Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przerobienie tablicy na inną
Forum PHP.pl > Forum > PHP
damianooo
Potrzebuję przerobić taką tablicę:

  1. array(80) {
  2. [0]=>
  3. array(7) {
  4. ["meet_id"]=>
  5. int(1)
  6. ["host"]=>
  7. string(12) "FC Barcelona"
  8. ["guest"]=>
  9. string(11) "Real Madryt"
  10. ["hostType"]=>
  11. int(0)
  12. ["guestType"]=>
  13. int(2)
  14. ["username"]=>
  15. string(6) "Damian"
  16. ["term"]=>
  17. string(23) "Wtorek,12-12-2016,21:00"
  18. }
  19. [1]=>
  20. array(7) {
  21. ["meet_id"]=>
  22. int(2)
  23. ["host"]=>
  24. string(15) "Atletico Madryt"
  25. ["guest"]=>
  26. string(10) "Sevilla FC"
  27. ["hostType"]=>
  28. int(1)
  29. ["guestType"]=>
  30. int(2)
  31. ["username"]=>
  32. string(6) "Damian"
  33. ["term"]=>
  34. string(23) "Wtorek,12-12-2016,21:00"
  35. }
  36. ...


na taką:

  1. array(10) {
  2. [0] => array(3) {
  3. ["meet_id"] => 1,
  4. ["host"] => "team 1",
  5. ["guest"] => "team 2",
  6. ["types"] => array(10) {
  7. ["0-1","0-0","2-1","0-1","-","2-1","0-1","0-0","-","2-1"]
  8. }
  9. }
  10. [1] .... itd.
  11. }



Jak to zrobić ?
Pyton_000
No i jaki masz problem? Prezlatujesz po tablicy, wybierasz interesujące dane i pchasz do innej tablicy.
damianooo
Możesz podpowiedzieć co robię źle w poniższym ?

  1. foreach($result as $details){
  2. if(!in_array($details['meet_id'],$types)){
  3. $types[$details['meet_id']]['meet_id'][] = $details['meet_id'];
  4. $types[$details['meet_id']]['host'][] = $details['host'];
  5. $types[$details['meet_id']]['guest'][] = $details['guest'];
  6. $types[$details['meet_id']]['types'][] = $details['hostType'].' - '.$details['guestType'];
  7. }
  8. }


wynik jaki otrzymuję to :

  1. array(10) {
  2. [1]=>
  3. array(4) {
  4. ["meet_id"]=>
  5. string(8) "Array(8)"
  6. ["host"]=>
  7. string(8) "Array(8)"
  8. ["guest"]=>
  9. string(8) "Array(8)"
  10. ["types"]=>
  11. string(8) "Array(8)"
  12. }
  13. [2]=>
  14. array(4) {
  15. ["meet_id"]=>
  16. string(8) "Array(8)"
  17. ["host"]=>
  18. string(8) "Array(8)"
  19. ["guest"]=>
  20. string(8) "Array(8)"
  21. ["types"]=>
  22. string(8) "Array(8)"
  23. }
  24. ...


z góry dziękuję
Pyton_000
Raczej coś w ten deseń:

  1. <?php
  2.  
  3. foreach ($result as $detail) {
  4. if(in_array($detail['meet_id'],$types)) {
  5. $types[$detail['meet_id']]['types'][] = $detail['hostType'].' - '.$details['guestType']
  6. continue;
  7. }
  8. $types[$detail['meet_id']] = [
  9. 'meet_id' => $detail['meet_id'],
  10. 'host' => $detail['host'],
  11. 'guest' => $detail['guest'],
  12. 'types' => [
  13. $detail['hostType'].' - '.$details['guestType']
  14. ],
  15. ];
  16. }
damianooo
jest lepiej ...
ale jeszcze nie wiem czemu nie wypisuje mi typów tylko jest tak: ["types"]=>string(8) "Array(1)" ?

  1. array(10) {
  2. [1]=>
  3. array(4) {
  4. ["meet_id"]=>
  5. int(1)
  6. ["host"]=>
  7. string(12) "FC Barcelona"
  8. ["guest"]=>
  9. string(11) "Real Madryt"
  10. ["types"]=>
  11. string(8) "Array(1)"
  12. }
  13. [2]=>
  14. array(4) {
  15. ["meet_id"]=>
  16. int(2)
  17. ["host"]=>
  18. string(15) "Atletico Madryt"
  19. ["guest"]=>
  20. string(10) "Sevilla FC"
  21. ["types"]=>
  22. string(8) "Array(1)"
  23. }
  24. ...
Pyton_000
literówka w `$details['guestType']` wywal `s`
damianooo
to nie to bo już wcześniej to zauważyłem i poprawiłem i jest nadal tak samo..

Mam tak:

  1. foreach ($result as $detail) {
  2. if(in_array($detail['meet_id'],$types)) {
  3. $types[$detail['meet_id']]['types'][] = $detail['hostType'].' - '.$detail['guestType'];
  4. continue;
  5. }
  6. $types[$detail['meet_id']] = [
  7. 'meet_id' => $detail['meet_id'],
  8. 'host' => $detail['host'],
  9. 'guest' => $detail['guest'],
  10. 'types' => [
  11. $detail['hostType'].' - '.$detail['guestType']
  12. ],
  13. ];
  14. }
Pyton_000
no to

var_dump($detail['hostType'], $detail['guestType']);
damianooo
var_dump wyświetla bez problemu wartości tych pól :
  1. int(0)
  2. int(2)
  3. int(1)
  4. int(2)
  5. int(0)
  6. int(1)
  7. int(2)
  8. int(2)
  9. int(1)
  10. int(2)
  11. int(0)
  12. int(0)
  13. int(2)
  14. int(0)
Pyton_000
a jak to potem wyświetlasz?
damianooo
ok rozkminiłem to ... ma być tak:

  1. foreach ($result as $detail) {
  2. if(!in_array($detail['meet_id'],$types)) {
  3. $types[$detail['meet_id']]['meet_id'] = $detail['meet_id'];
  4. $types[$detail['meet_id']]['host'] = $detail['host'];
  5. $types[$detail['meet_id']]['guest'] = $detail['guest'];
  6. $types[$detail['meet_id']]['types'][] = $detail['hostType'].' - '.$detail['guestType'];
  7. }
  8. }


dzięki Python za pomoc, pozdrawiam
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.