2010-06-11 43 views
2

我有这样 阵列([0] =>“的一些值” [1] =>“”)变化空数组元素的值

我想改变阵列的空elemnt阵列到5

值我怎么能做到这一点

感谢

+0

? – 2010-06-11 22:11:07

回答

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; 
    } 
} 
-2

$array[1] = 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); 

编辑:如果empty不符合您的要求,您应该根据@ Felix的建议将条件更改为$value === ''

+1

我会说,'empty'在这里不是正确的功能。它也将返回true,对于'0','0'和'FALSE',在这种情况下很可能不是空值。 – 2010-06-11 22:21:12

+0

您可能是对的,我想说这取决于OP的确切要求。我已经编辑过。 – karim79 2010-06-11 22:25:06

4

5.3版本

$arr = array_map(function($n) { return !empty($n) ? $n : 5; }, $arr); 
是否使用的是这些PHP版本的
+1

关闭和三元组...如果可以的话,我会两次让你高兴。 – Entendu 2010-06-12 00:12:34