PHP:Создать массив массивов, игнорируя пустые массивы

StackOverflow https://stackoverflow.com/questions/1658994

  •  11-09-2019
  •  | 
  •  

Вопрос

Мне нужно создать массив массивов.
я использовал array_map(null,$a,$b,$c) чтобы сделать это, и это работает нормально, однако это не работает, если один из сопоставленных массивов не существует.

Чтобы обойти эту проблему, я использовал:

$myArray= array();
if (isset($a)) {
    array_push($myArray,$a);
}
if (isset($b)) {
    array_push($myArray,$b);
}
if (isset($c)) {
    array_push($myArray,$c);
}

Есть ли более элегантный/короткий способ написать это?
Я пробовал применять некоторые функции через array_map($function,$a,$b,$c) но безуспешно.

Это было полезно?

Решение

$myArray = array_filter(array($a, $b, $c));

Другие советы

Вы можете использовать следующую функцию:

function joinArrays(){
  $arrays = func_get_args();
  $output = array();
  foreach($arrays as $array){
     if(!empty($array)) array_push($output, $array);
  }
  return $output;
}

позвони типа:joinArrays($a, $b, $c и т. д.);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top