Kurz gesagt:
Dies ist der von mir vorgeschlagene Code:
$myarray = array_values(array_filter(array_map('trim', $myarray), 'strlen'));
Erläuterung:
Ich denke, die Verwendung array_filter
ist gut, aber nicht genug, denn Werte sind wie space
y \n
... im Array aufbewahren und das ist normalerweise schlecht.
Ich schlage also vor, dass Sie eine Mischung verwenden array_filter
y array_map
.
array_map
ist zum Beschneiden, array_filter
ist zum Entfernen leerer Werte, strlen
ist zu behalten 0
Wert, und array_values
ist für die erneute Indizierung, wenn Sie es brauchen.
Muster:
$myarray = array("\r", "\n", "\r\n", "", " ", "0", "a");
// "\r", "\n", "\r\n", " ", "a"
$new1 = array_filter($myarray);
// "a"
$new2 = array_filter(array_map('trim', $myarray));
// "0", "a"
$new3 = array_filter(array_map('trim', $myarray), 'strlen');
// "0", "a" (reindex)
$new4 = array_values(array_filter(array_map('trim', $myarray), 'strlen'));
var_dump($new1, $new2, $new3, $new4);
Ergebnisse:
array(5) {
[0]=>
" string(1) "
[1]=>
string(1) "
"
[2]=>
string(2) "
"
[4]=>
string(1) " "
[6]=>
string(1) "a"
}
array(1) {
[6]=>
string(1) "a"
}
array(2) {
[5]=>
string(1) "0"
[6]=>
string(1) "a"
}
array(2) {
[0]=>
string(1) "0"
[1]=>
string(1) "a"
}
Online-Test:
http://sandbox.onlinephpfunctions.com/code/e02f5d8795938be9f0fa6f4c17245a9bf8777404