PHP: создать массив массивов, игнорируя пустые массивы - PullRequest
0 голосов
/ 02 ноября 2009

Мне нужно создать массив массивов.
Я использовал 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 ]

4 голосов
/ 02 ноября 2009
$myArray = array_filter(array($a, $b, $c));
0 голосов
/ 02 ноября 2009

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

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 и т. Д.);

...