Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja, która przetważa elementy tablicy
Forum PHP.pl > Forum > PHP
MatheW
Czy istnieje taka funkcja, która przetważa elementy tablicy, ale jeżeli elementem tym jest tablica to robi ona również dla jej elementów?
Cysiaczek
O ile mnie pamieć nie myli, to nie. Musisz sam wykryć, że coś jest tablicą. Poszukaj na forum - było kilka razy.
foreach + if else smile.gif

Pozdrawiam
MatheW
Tego się obawiałem...

Wygrzebałem w manualu coś takiego:
  1. <?php
  2. function walker($walk, $array) {
  3.  if (count($walk) >0) {
  4.  foreach($array as $key => $value) {
  5.  if ($key == $walk[0]) {
  6.  if (is_array($value)) {
  7.  unset($walk[0]);
  8.  return walker(array_values($walk), $value);
  9.  } else {
  10.  if (isset($value)) {
  11.  if (count($walk) == 1) {
  12.  return $value;
  13.  } else {
  14.  return 0;
  15.  }
  16.  } else {
  17.  return 0;
  18.  }
  19.  }
  20.  } 
  21.  } 
  22.  return 0;
  23.  } else {
  24.  return $array;
  25.  }
  26. }
  27. ?>
tyle iz dojść nie mogę co nalezy dac jako $walk
mike
Mozesz skorzystać z array_walk

  1. <?php
  2.  
  3. $arrTab = array( 1, 3, 'asd', array( 'ok', 'ko', array( 1, 2, 3, 4 ) ), 'asda', 2 );
  4.  
  5. function funkcjaKtoraRobiCosZElementemTablicy( $mixElement )
  6. {
  7. if( is_array( $mixElement ) )
  8. {
  9. array_walk( $mixElement, 'funkcjaKtoraRobiCosZElementemTablicy' );
  10. }
  11. else
  12. {
  13. /* operacje na elemencie */
  14. echo $mixElement . "<br />n";
  15. }
  16. }
  17.  
  18. array_walk( $arrTab, 'funkcjaKtoraRobiCosZElementemTablicy' );
  19.  
  20. ?>
MatheW
Dzieki
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.