PHP: создать массив массивов, игнорируя пустые массивы
Мне нужно создать массив массивов.
Я использую 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)
но без удачи.
2 ответа
Решение
Вы можете использовать следующую функцию:
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 и т. д.);