phpで配列の要素が空のときに省く

csrで識別名が必要ですが、以下のように

$dn = array(
 "a" => $val_a,
 "b" => $val_b,
 "c" => $val_c 
      );

と記述すると、空の要素があったときに、openssl_csr_newコマンドでエラーが出ます。 例えば、val_bが空の場合は

if($val_b == NULL) {
$dn = array(
 "a" => $val_a,
 "c" => $val_c 
      );
} else {
$dn = array(
 "a" => $val_a,
 "b" => $val_b,
 "c" => $val_c 
      );
}

のように書くこともできますが、コードが長くなり、読みづらくなります。 そこで、以下のように

$dn = array();
$dn["a"] = $val_a;
if($val_b != NULL) {
$dn["b"] = $val_b;
}
$dn["c"] = $val_c;

のように書くことで、短く、かつ読みやすくなります。