array_combine застрял, когда в первом массиве нет значения - PullRequest
0 голосов
/ 02 февраля 2010

я использую array_combine(), но отображается ошибка, когда в первом массиве нет значения. как от этого избавиться

EDIT:

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 ]

3 голосов
/ 02 февраля 2010

Используйте такие условия:

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)
    }
*/
0 голосов
/ 02 февраля 2010

array_combine()

Ошибки / Исключения

Бросает E_WARNING если ключи и значения либо пустые, либо число элементы не совпадают.

Так что вам нужно убедиться, что в массиве что-то есть, или не вызывать array_combine(). Например:

if (count($keys) > 0 && count($values) > 0 && count($keys) == count($values)) {
  $combined = array_combine($keys, $values);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...