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.

Foi útil?

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
scroll top