2010-06-11 3 views

ответ

2

Если вы знаете, в каком положении он находится, просто сделать:

$array[1] = 5; 

Если нет, то цикл через него и проверить с === for value and type equality:

foreach($array as &$element) { //get element as a reference so we can change it 
    if($element === '') { // check for value AND type 
     $element = 5; 
    } 
} 
1

Вы можете использовать array_map для этого:

function emptyToFive($value) { 
    return empty($value) ? 5 : $value;  
} 

$arr = array_map(emptyToFive, $arr); 

По состоянию на PHP 5.3, вы можете сделать:

$func = function($value) { 
    return empty($value) ? 5 : $value;  
}; 
$arr = array_map($func, $arr); 

EDIT: Если empty не соответствует вашим требованиям, возможно, вы должны изменить это условие на $value === '' согласно предложению Феликса.

+1

Я бы сказал, что 'empty' не является правильной функцией здесь. Он также вернет true, для '0',' '0'' и 'FALSE', которые в этом случае скорее всего не будут пустыми. –

+0

Возможно, вы правы, я бы сказал, что это действительно зависит от точных требований OP. Я отредактировал это. – karim79

4

5,3 версия

$arr = array_map(function($n) { return !empty($n) ? $n : 5; }, $arr); 
+1

Закрытие и тройка ... Если бы я мог, я бы вас дважды повысил. – Entendu

Смежные вопросы