我有一个从循环创建的数组,它返回正确的数据
0
上面的代码生成了这个,这是正确的。
$ku = array();
$oid = array('id-ce-keyUsage');
if(isset($chain['tbsCertificate']['extensions'])) {
$count = count($chain['tbsCertificate']['extensions']);
for($i = 0; $i < $count; $i++) {
$count2 = count($chain['tbsCertificate']['extensions'][$i]['extnValue']);
for($j = 0; $j < $count2; $j++) {
if(array_key_exists('extnId', $chain['tbsCertificate']['extensions'][$i]) &&
in_array($chain['tbsCertificate']['extensions'][$i]['extnId'], $oid)) {
$value = $chain['tbsCertificate']['extensions'][$i]['extnValue'][$j];
$ku[] = $value;
}
}
}
}
print_r($ku);
但是,我希望能够自己打印Array
(
[0] => keyEncipherment
[1] => digitalSignature
)
Array
(
[0] => cRLSign
[1] => keyCertSign
)
Array
(
[0] => cRLSign
[1] => keyCertSign
)
的值,如下所示:
$ku
我尝试了以下代码但结果,虽然结果看起来很准确,但它实际上是将每次迭代的结果加在一起而不是将它们分开。
这是我尝试的代码:
keyEncipherment, digitalSignature
cRLSign, keyCertSign
cRLSign, keyCertSign
以下是结果:
foreach ($ku as $val) {
$temp[] = "$val";
$key_usage = implode(', ', $temp);
}
echo $key_usage;
非常感谢一些帮助。很高兴在需要时分享更多代码。
-UPDATE -
这段代码似乎有所帮助,但希望找到一个更好的解决方案,我可以在没有[]的情况下回显字符串
keyEncipherment, digitalSignature
keyEncipherment, digitalSignature, cRLSign, keyCertSign
keyEncipherment, digitalSignature, cRLSign, keyCertSign, cRLSign, keyCertSign
答案 0 :(得分:1)
您不需要将值存储到另一个数组中,因为您的值是数组本身。
在聊天讨论后:
$new_ku = implode(',',$ku);
echo $new_ku;
答案 1 :(得分:0)
试试这段代码,
array_walk($ku, create_function('$k, $v', 'echo $v[0].", ".$v[1];'));
如果你有PHP版本&gt; = 5.3那么你可以使用..
array_walk($ku, function($i, $v){ echo $v[0].", ".$v[1]; });