foreach($array as $key => $value)
if (strlen($value) == 0)
unset($array[$key]);
gidecekseniz çok yerleşik dizi fonksiyonları bu yüzden yok bir var mı?
Ben bu tür şeyler yapmak için, array_filter kullanabilirsiniz varsayalım (quoting):
Iterates over each value in the input array passing them to the callback function.
If the callback function returnstrue, the current value from input is returned into the result array.
Array keys are preserved.
Ve:
If no callback is supplied, all entries of input equal to
FALSE(see converting to boolean) will be removed.
For instance, using something like this portion of code :
$array = array(
'test' => 'glop',
'a' => 123,
'b' => '',
'c' => 'blah',
'd' => '',
);
$array = array_filter($array);
var_dump($array);
Aşağıdaki çıktıyı almak istiyorum:
array
'test' => string 'glop' (length=4)
'a' => int 123
'c' => string 'blah' (length=4)
Ben burada, bir geri çağırma işlevi kullanılan vermedi - ki all "empty" values have been removed anlamına gelir;; I 0, değeri olarak ile giriş tr olsaydı, çok kaldırılmış olurdu olmanın zor kısmı ...
Durumunuza bağlı olarak, bu kabul edilebilir ya da değil ... Bu yüzden belki de tam olarak ne istediğinizi yapmak için belirli bir geri çağırma işlevi kullanmayı tercih ve süzülür alır ne üzerinde daha iyi bir kontrole sahip olurdu?
And here's an example with a callback function :
$array = array(
'test' => 'glop',
'a' => 0,
'b' => '',
'c' => 'blah',
'd' => '',
);
function my_function($a) {
if ($a === '') {
return false;
}
return true;
}
$array = array_filter($array, 'my_function');
var_dump($array);
Dizideki (Note the 'a' => 0 hat) strong>
Ve biz şimdi olsun:
array
'test' => string 'glop' (length=4)
'a' => int 0
'c' => string 'blah' (length=4)
yani using a callback function allowed us to specify more clearly what should be filtered out (here, lines containing exactly an empty string, without type conversion).