Ho cercato un sacco di risposte, ma nessuno di loro lavora per me.Come rimuovere i valori vuoti dall'array multidimensionale in PHP?
Questi sono i dati assegnati alla mia $quantities
array:
Array(
[10] => Array([25.00] => 1)
[9] => Array([30.00] => 3)
[8] => Array([30.00] => 4)
[12] => Array([35.00] =>)
[1] => Array([30.00] =>)
[2] => Array([30.00] =>)
)
Sto cercando un modo per rimuovere i sottoarray con valori vuoti come [12]
[1]
e [2]
mantenendo tutto il resto.
Il risultato desiderato:
Array(
[10] => Array([25.00] => 1)
[9] => Array([30.00] => 3)
[8] => Array([30.00] => 4)
)
ho provato un sacco di funzioni la documentazione ufficiale di PHP e nessuno di loro ha lavorato.
Ho usato questo uno:
function array_filter_recursive($array, $callback = null) {
foreach ($array as $key => & $value) {
if (is_array($value)) {
$value = array_filter_recursive($value, $callback);
} else {
if (! is_null($callback)) {
if (! $callback($value)) {
unset($array[$key]);
}
} else {
if (! (bool) $value) {
unset($array[$key]);
}
}
}
}
unset($value);
return $array;
}
ma rimuove solo l'elemento nei sottoarray; Ho bisogno che i sottoarray vengano rimossi completamente.
Non voglio questo:
Array(
[10] => Array([25.00] => 1)
[9] => Array([30.00] => 3)
[8] => Array([30.00] => 4)
[12] => Array()
[1] => Array()
[2] => Array()
)
Considerare l'utilizzo di var_dump() per mostrarci i contenuti dell'array. –
Per una pagina che viene utilizzata come destinazione per così tanti collegamenti dupli, questa pagina ha una quantità incredibile di risposte errate con aumento di frequenza. @ Richard-MX Ho postato una risposta che non usa ricorsione o più funzioni di iterazione in modo che i lettori che vengono trasferiti qui siano in grado di vedere una soluzione snella (a prova zero). (non è chiaro nel tuo post se i tuoi array vuoti hanno stringhe vuote o 'null' come valori, quindi ho provato con entrambi) – mickmackusa