如何向数组动态添加值


how to dynamically add values to an array

以下是具有硬编码值的工作脚本:

$subject->currentCert['tbsCertificate']['extensions'][] = array(
   'extnId' => 'id-ce-subjectAltName',
   'critical' => false,
   'extnValue' => array(
      array('dNSName' => 'www.domain1.com'),
      array('dNSName' => 'www.domain2.com')
   )
);

我想更新上面的脚本(仅限extnValue部分(,以自动从另一个名为$OPTIONS["altnames"]的数组中获取值

首先,我将以下字符串转换为数组

$sans = 'www.domain1.com, www.domain2.com';

我用以下代码将字符串转换为数组$OPTIONS["altnames"]:

$OPTIONS["altnames"] = array();
if (    !empty($sans)   ) {
    if (strpos($sans,",") !== false) {
        $sans = str_replace(" ", "", $sans); //remove spaces
        $sans = explode(",", $sans); //strip each value after comma to array
        foreach ($sans as $value) {
        array_push($OPTIONS["altnames"], $value);
        }
    }
}

不确定下一步要做什么

$OPTIONS['altnames']:复制时,需要在extnValue数组中添加另一个级别的数组

$extnValues = array();
foreach ($OPTIONS['altnames'] AS $name) {
    $extnValues[] = array('dNSName' => $name);
}
$subject->currentCert['tbsCertificate']['extensions'][] = array(
   'extnId' => 'id-ce-subjectAltName',
   'critical' => false,
   'extnValue' => $extnValues
);