我正在使用array_combine()
,但在第一个数组中没有值时显示错误。
如何摆脱这个
修改
First array
Distance_Array
Array
(
[0] =>
)
School_ID_Array
Array
(
[0] =>
)
and i m using
$Coverage_ Array=array_combine($School_ID_Array,$Distance_Array);
which results
Coverage_ Array
Array
(
[] =>
)
i want that in first array, if any value is empty ,
then Coverage_ Array key accept any default key
答案 0 :(得分:3)
使用这样的条件:
if (isset($some_var_or_array) && !empty($some_var_or_array)) {
// some code which using $some_var_or_array value(s)
}
<强> UDATED 强>
这里的函数是ArrayCombine(),它获取三个参数:两个数组和第三个 - 默认参数。默认参数值将设置为空的或有效的第一个数组值:
function ArrayCombine($array1, $array2, $default = 0)
{
foreach ($array1 as $key => $value) {
if (!isset($value) || empty($value)) {
$array1[$key] = $default;
}
}
return array_combine($array1, $array2);
}
这里的例子是:
$Distance_Array = array(
1 => '',
);
$School_ID_Array = array(
3 => 4,
);
$Coverage_Array = ArrayCombine($Distance_Array, $School_ID_Array);
var_dump($Coverage_Array);
/*
var_dump output:
array(1) {
[24]=>
int(4)
}
*/
答案 1 :(得分:0)
<强>错误/异常强>
如果键和值,则抛出
E_WARNING
要么是空的,要么是数字 元素不匹配。
因此,您需要确保数组中存在某些内容,或者不要调用array_combine()
。例如:
if (count($keys) > 0 && count($values) > 0 && count($keys) == count($values)) {
$combined = array_combine($keys, $values);
}