我想验证一个数组是否具有“a”,“b”和“c”作为关联键,并且值是整数或者是NULL或0(更容易)。例如,array('a'=>123,'b'=>'abc', 'd'=>321)
应该被转换为array('a'=>123,'b'=>0, 'c'=>0)
。将数组转换为具有整数的特定键
我可以这样做以下,但它是一个有点难以阅读,将成为大的,如果我不只是有3个要素,但300
$newArr=array(
'a'=>(isset($arr['a']))?(int)$arr['a']:0,
'b'=>(isset($arr['b']))?(int)$arr['b']:0,
'c'=>(isset($arr['c']))?(int)$arr['c']:0
);
另一种选择是类似的如下:
$newArr=array();
foreach (array('a','b','c') as $key)
{
$newArr[$key]=(isset($arr[$key]))?(int)$arr[$key]:0;
}
我想这个工作足够好,但是,好奇是否有一些光滑的数组转换函数,我不知道这会更好。有什么建议?由于
所以,你想要什么,是要合并的阵列? http://php.net/manual/en/function.array-merge.php –
@feeela $ arr ['a'] = 123; – user1032531
您可以使用'array_map'而不是'for'循环。 –