2010-02-02 2 views
0

i m с использованием array_combine(), но он отображает ошибку, когда в первом массиве нет значения. , как избавиться от этой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 
+0

не Что вы имеете в виду «никакой ценности»? – cletus

ответ

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) 
    } 
*/ 
+0

@ Мне нравится PHP: проверьте обновленный код –

0

array_combine()

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

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

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

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