在循环中从循环中打印数组中的所有值

时间:2015-05-26 04:24:46

标签: php arrays

我有一个从循环创建的数组,它返回正确的数据

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

2 个答案:

答案 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]; });