PHP: Criar matriz de matrizes, ignorando matrizes vazias
Pergunta
Eu preciso para criar uma matriz de matrizes.
Tenho vindo a utilizar array_map(null,$a,$b,$c)
para fazer isso e ele funciona muito bem, no entanto, ele não funciona se uma das matrizes mapeadas não existe.
Para contornar este problema eu usei:
$myArray= array();
if (isset($a)) {
array_push($myArray,$a);
}
if (isset($b)) {
array_push($myArray,$b);
}
if (isset($c)) {
array_push($myArray,$c);
}
Existe uma menor método mais elegante / de escrever este?
Eu tentei aplicar algumas funções através array_map($function,$a,$b,$c)
, mas sem sorte.
Solução
$myArray = array_filter(array($a, $b, $c));
Outras dicas
Você pode usar a seguinte função:
function joinArrays(){
$arrays = func_get_args();
$output = array();
foreach($arrays as $array){
if(!empty($array)) array_push($output, $array);
}
return $output;
}
chamada como: joinArrays ($ a, $ b, $ c, etc ..);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow