PHP array_merge, если не пустой
Попытка объединить 4 массива, но некоторые могут быть пустыми в определенное время.
$array_1 = array('something1', something2);
$array_2 = array('something3', something4);
$array_3 = array();
$array_4 = array('something1', something2);
$list = array_merge($array_1,$array_2,$array_3,$array_4);
print_r($list);
Но если один из массивов пуст, произойдет ошибка. Я навсегда искал Google, но я не могу найти простой простой ответ о том, как проверять пустые массивы перед слиянием.
Аргумент № 2 не является массивом
Или, какой бы массив не был пуст, это номер аргумента. Как вырезать пустые массивы перед слиянием?
Ответы
Ответ 1
Хорошо, вот вы идете, это должно сделать трюк (если вы создаете массив исходных массивов):
$arrs = array();
$arrs[] = array('something1', something2);
$arrs[] = array('something3', something4);
$arrs[] = array();
$arrs[] = array('something1', something2);
$list = array();
foreach($arrs as $arr) {
if(is_array($arr)) {
$list = array_merge($list, $arr);
}
}
print_r($list);
Ответ 2
Нет ошибки с пустым массивом. Ошибка только в том случае, если arg не является массивом.
Вы можете проверить is_array()
или:
$list = array_merge(
(array)$array_1,
(array)$array_2,
(array)$array_3,
(array)$array_4
);
Ответ 3
Array merge поддерживает пустой массив()
Doc:
Пример # 3 Простой пример array_merge() http://us1.php.net/array_merge
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
Result
Array
(
[0] => data
)
Вы получаете уведомление, потому что something2, something4 следует указывать как строку или $ как переменную.
PHP Notice: Use of undefined constant something2 - assumed 'something2'