2017-02-06 14 views
0

Ich habe ein Array, ich drucke es einfach als
print_r ($ data);
Es zeigt Ausgang as-Null oder leere Werte des Arrays entfernen

Array 
(
    [0] => Array 
     (
      [0] => Title 
      [1] => Featured Image 
      [2] => Catagories 
      [3] => Tags 
      [4] => Content 
     ) 

    [1] => Array 
     (
      [0] => title 1 
      [1] => img1.jpg 
      [2] => cat 1 
      [3] => tag 1 
      [4] => post 1 content 
     ) 

    [2] => Array 
     (
      [0] => title 2 
      [1] => img2.jpg 
      [2] => cat2 
      [3] => tag 2 
      [4] => post 2 content 
     ) 

    [3] => Array 
     (
      [0] => title 3 
      [1] => img3.jpg 
      [2] => cat3 
      [3] => tag3 
      [4] => post 3 content 
     ) 

    [4] => Array 
     (
      [0] => 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
     ) 

    [5] => Array 
     (
      [0] => 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
     ) 

    [6] => Array 
     (
      [0] => 
      [1] => 
      [2] => 
      [3] => 
      [4] => 
     ) 

) 

Ich möchte nur leere oder Null-Werte aus dem Array entfernen.
Ich versuchte Array_dif() und Array_filter(), aber ich konnte NULL-Werte nicht entfernen.
Wie ist das möglich?
Danke.

+0

try al larray zu lesen und ein neues Array erzeugen, ohne Nullwerte –

+0

http://stackoverflow.com/questions/3654295/remove-empty-array-elements –

+0

Schleife über die Hauptarray und Filtern der Array-Wert mit dem array_filter; – itzmukeshy7

Antwort

1

Sie können das Array durchlaufen, nach leeren Variablen suchen und unset verwenden, um sie zu entfernen.


Dieser Code wird durch die Schleife und prüfen, ob die Länge des ersten Wertes in jedem Array mindestens ein Zeichen lang und nicht gesetzt ist, wenn sein nicht.

<?php 
foreach($data as $key => $value) { 
    if(!isset($value[0][0])) 
     unset($data[$key]); 
} 

Dieser Code wird in einer ähnlichen Art und Weise die Anordnung durchlaufen, mit der Ausnahme jeden Wert von jedem Array zu überprüfen, um zu bestimmen, ob sein parrent Array gehalten werden soll oder nicht gesetzt gelassen werden.

<?php 
foreach($data as $key => $values) { 
    foreach($values as $value) { 
     if(isset($value[0])) 
      continue 2; 
    } 
    unset($data[$key]); 
} 
1

Sie sollten mit einer Funktion verwenden array_filter, die auch array_filters gegen die Sub-Arrays läuft und gibt false zurück, wenn die gefilterten Subarrays leer.

<?php 

$array = Array(
    Array(1, 2, 3), 
    Array(null, null, null), 
    Array(false, false, false), 
    Array(3, 2, 1) 
); 

$filtered = array_filter($array, function($elem) { 
    return count(array_filter($elem)); 
}); 

print_r($filtered); 

?> 
Verwandte Themen