Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czyszczenie tablicy z pustych elementów
Forum PHP.pl > Forum > Przedszkole
kamil_lk
Cześć,

Próbuję napisać metodę, która pousuwa mi z tablicy puste elementy.
Jak mogę to zrobić, aby działało dla wielu wymiarów?

Jednowymiarowa - działa
  1. public function cleanEmptyValueFromArray($array)
  2. {
  3. $array = array_filter($array, function($value) { return $value !== ''; });
  4. $array = (count($array) > 0) ? $array : NULL;
  5.  
  6. return $array;
  7. }


Wielowymiarowa - nie działa (próbuję wykonać tu rekurencję, ale coś mi nie wychodzi)
  1. public function cleanEmptyValueFromArray($array)
  2. {
  3. $array = array_filter($array, function($value) {
  4. if(is_array($value)) return $this->cleanEmptyValueFromArray($value);
  5. return $value !== '';
  6. });
  7. $array = (count($array) > 0) ? $array : NULL;
  8.  
  9. return $array;
  10. }
Pyton_000
Pokaż wejście i wyjście jakie ma być.
Boshi
$array = array_map('array_filter', $array); ?
kamil_lk
Przykład 1
Wejście:
  1. $array = [
  2. 'array' => [
  3. 'key1' => 'value1',
  4. 'key2' => '',
  5. 'key3' => 'value3'
  6. ],
  7. 'key1' => 'value',
  8. 'key2' => '',
  9. 'key3' => 'value3'
  10. ]

Wyjście:
  1. $array = [
  2. 'array' => [
  3. 'key1' => 'value1',
  4. 'key3' => 'value3'
  5. ],
  6. 'key1' => 'value',
  7. 'key3' => 'value3'
  8. ]


Przykład 2
Wejście:
  1. $array = [
  2. 'array' => [
  3. 'key1' => '',
  4. 'key2' => '',
  5. 'key3' => ''
  6. ],
  7. 'key1' => 'value',
  8. 'key2' => '',
  9. 'key3' => 'value3'
  10. ]

Wyjście:
  1. $array = [
  2. 'key1' => 'value',
  3. 'key3' => 'value3'
  4. ]
viking
http://stackoverflow.com/a/6795671
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.