配列に関連付けられたキーとして「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;
}
これで十分に機能すると思いますが、私が知らない滑らかな配列変換関数があるかどうかに興味があります。何かアドバイス?ありがとう