当第一个数组中没有值时,array_combine卡住了

时间:2010-02-02 13:28:37

标签: php arrays

我正在使用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

2 个答案:

答案 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)

array_combine()

  

<强>错误/异常

     

如果键和值,则抛出E_WARNING   要么是空的,要么是数字   元素不匹配。

因此,您需要确保数组中存在某些内容,或者不要调用array_combine()。例如:

if (count($keys) > 0 && count($values) > 0 && count($keys) == count($values)) {
  $combined = array_combine($keys, $values);
}