Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Operacja na tablicy
Forum PHP.pl > Forum > Przedszkole
dariolee
Witam,
Mam mały problem z tablicą, która wygląda tak :

  1. (
  2. [a] => Array
  3. (
  4. [0] => cytryna, pomarancza, jablko, sliwka
  5. [1] => Owoce
  6. [2] => cytryna
  7. )
  8.  
  9. [b] => Array
  10. (
  11. [0] => marchewka, ogorek, kapusta, salata
  12. [1] => warzywa
  13. [2] => ogorek
  14. )
  15.  
  16. [c] => Array
  17. (
  18. [0] => owca, baran, osiol, los
  19. [1] => zwierzak
  20. [2] => los
  21. )
  22.  
  23. )


Czy można operować na podanej tablicy tak, żeby przefiltrować ją do stanu:

  1. (
  2. [a] => Array
  3. (
  4. [0] => cytryna
  5. [1] => Owoce
  6. [2] => cytryna
  7. )
  8.  
  9. [b] => Array
  10. (
  11. [0] => ogorek
  12. [1] => warzywa
  13. [2] => ogorek
  14. )
  15.  
  16. [c] => Array
  17. (
  18. [0] => los
  19. [1] => zwierzak
  20. [2] => los
  21. )
  22.  
  23. )


Chodzi o wyłowienie wartości z [2] w [0] i pozostawieniu tylko tej które są sobie równe.

Mogę sobie poradzić tworząc nową tablicę i wcześniejszym filtrowaniu ale z ciekawości chciałbym sie dowiedziec czy mozna tego dokonac na właściwej tablicy.
mablo
  1. foreach ($array as $value)
  2. {
  3. $value[2] = $value[0];
  4. }
griwes
mabio podał coś co dało pożądany efekt, ja ze swojej strony podpowiem, że do rozbijania stringów służy explode().
dariolee
smile.gif
Trochę źle to wyjaśniłem. Konkretnie chodzi mi o to, żeby mienić wpisy w tej konkretnej tablicy tablicy i żeby po zakończeniu foreach'a otrzymać zmienione wartości w wejsciowej tablicy. W tym momencie z takiego kodu:

  1. $ziomal['a'][0] = "cytryna, pomarancza, jablko, sliwka";
  2. $ziomal['a'][1] = "Owoce";
  3. $ziomal['a'][2] = "cytryna";
  4. $ziomal['b'][0] = "marchewka, ogorek, kapusta, salata";
  5. $ziomal['b'][1] = "warzywa";
  6. $ziomal['b'][2] = "ogorek";
  7. $ziomal['c'][0] = "owca, baran, osiol, los";
  8. $ziomal['c'][1] = "zwierzak";
  9. $ziomal['c'][2] = "los";
  10. print_r($ziomal);
  11.  
  12. foreach($ziomal as $aaa){
  13. $aaa[0] = $aaa[2];
  14. }
  15.  
  16. print_r($ziomal);


Otrzymuje na wyjści:

  1.  
  2. (
  3. [a] => Array
  4. (
  5. [0] => cytryna, pomarancza, jablko, sliwka
  6. [1] => Owoce
  7. [2] => cytryna
  8. )
  9.  
  10. [b] => Array
  11. (
  12. [0] => marchewka, ogorek, kapusta, salata
  13. [1] => warzywa
  14. [2] => ogorek
  15. )
  16.  
  17. [c] => Array
  18. (
  19. [0] => owca, baran, osiol, los
  20. [1] => zwierzak
  21. [2] => los
  22. )
  23.  
  24. )
  25. (
  26. [a] => Array
  27. (
  28. [0] => cytryna, pomarancza, jablko, sliwka
  29. [1] => Owoce
  30. [2] => cytryna
  31. )
  32.  
  33. [b] => Array
  34. (
  35. [0] => marchewka, ogorek, kapusta, salata
  36. [1] => warzywa
  37. [2] => ogorek
  38. )
  39.  
  40. [c] => Array
  41. (
  42. [0] => owca, baran, osiol, los
  43. [1] => zwierzak
  44. [2] => los
  45. )
  46.  
  47. )
  48.  


Czyli w wyjściowej tablicy nic sie nie zmieniło.
piotrooo89
musisz użyć referencji. polecam zapoznać Ci się z array_walk i array_walk_recursive.
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.