Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przerabianie tablicy
Forum PHP.pl > Forum > PHP
damianooo
Potrzebuje przerobic tablice:

  1. $request = array(
  2. 'a' => array(
  3. 1,2,3,4,5,6,7,8,9,10
  4. ),
  5. 'b' => array(
  6. 0,0,0,0,0,0,0,0,0,0
  7. ),
  8. 'c' => array(
  9. 0,0,0,0,0,0,0,0,0,0
  10. ),
  11. );


na taka:

  1. $request = array(
  2. 0 => array(
  3. 'a' => 1,
  4. 'b' => 0,
  5. 'c' => 0
  6. ),
  7. 1 => array(
  8. 'a' => 2,
  9. 'b' => 0,
  10. 'c' => 0
  11. ),
  12. 2 => array(
  13. 'a' => 3,
  14. 'b' => 0,
  15. 'c' => 0
  16. ),
  17. 3 => array(
  18. 'a' => 4,
  19. 'b' => 0,
  20. 'c' => 0
  21. ),
  22. 4 => array(
  23. 'a' => 5,
  24. 'b' => 0,
  25. 'c' => 0
  26. ),
  27. 5 => array(
  28. 'a' => 6,
  29. 'b' => 0,
  30. 'c' => 0
  31. ),
  32. 6 => array(
  33. 'a' => 7,
  34. 'b' => 0,
  35. 'c' => 0
  36. ),
  37. 7 => array(
  38. 'a' => 8,
  39. 'b' => 0,
  40. 'c' => 0
  41. ),
  42. 8 => array(
  43. 'a' => 9,
  44. 'b' => 0,
  45. 'c' => 0
  46. ),
  47. 9 => array(
  48. 'a' => 10,
  49. 'b' => 0,
  50. 'c' => 0
  51. ),
  52. );


nie wiem jak to zrobic, probuje w ten sposob:

  1. foreach ($request as $key => $val){
  2. foreach ($val as $data){
  3. $aa[][$key][] = $data;
  4. }
  5. }


ale to nie daje mi tego co potrzebuje, ehh





Pyton_000
Na szybko prosto...
  1. <?php
  2. $request = array(
  3. 'a' => array(
  4. 1,2,3,4,5,6,7,8,9,10
  5. ),
  6. 'b' => array(
  7. 0,0,0,0,0,0,0,0,0,0
  8. ),
  9. 'c' => array(
  10. 0,0,0,0,0,0,0,0,0,0
  11. ),
  12. );
  13.  
  14. $data = [];
  15.  
  16. foreach ($request as $key => $values) {
  17. foreach($values as $index => $value) {
  18. foreach(array_keys($request) as $val) {
  19. $data[$index][$val] = $request[$val][$index];
  20. }
  21. }
  22. }
  23. print_r($data);
damianooo
hmm ... ogolnie dziala

ale chcialem uniknac tylu foreach'ow .

ma ktos jeszcze jakis pomysl ?

z gory dziekuje

Pyton_000
  1. <?php
  2. $request = array(
  3. 'a' => array(
  4. 1,2,3,4,5,6,7,8,9,10
  5. ),
  6. 'b' => array(
  7. 0,0,0,0,0,0,0,0,0,0
  8. ),
  9. 'c' => array(
  10. 0,0,0,0,0,0,0,0,0,0
  11. ),
  12. );
  13.  
  14. $data = [];
  15.  
  16. $counter = count(current($request));
  17.  
  18. foreach (array_keys($request) as $key) {
  19. for($i=0; $i<$counter; $i++) {
  20. $data[$i][$key] = $request[$key][$i];
  21. }
  22. }
  23. print_r($data);


Trochę samodzielności... Dostałeś na tacy rozwiązanie a jeszcze marudzisz?
damianooo
Dzieki za pomoc Pyton_000.
Chcialem tylko zobaczyc jak robia to doswiadczeni programisci.
Zawsze czegos sie mozna nauczyc.
Probowalem dlugo to zrobic sam ale nie udawalo mi sie. Chyba powinienem czesciej uzywac funkcji pomocniczych tak jak Ty to zrobiles. Super.
Natomiast nie chcialem Twojego pierwszego rozwiazania wykorzystac poniewaz nie wygladalo by to dobrze we frameworku, ktorego uzywam.

Dzieki raz jeszcze 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.