如何在php中获取动态生成的数组的值

时间:2016-03-16 15:31:33

标签: php

我在PHP中生成一个字典,其中键和值被添加到字典中。

但我无法取回值。我使用以下代码:

    //some code here
    while (($line = fgets($fileServices)) !== false) {
            //echo $line.'....................';
            if (strpos($line,'header') == false){
                    $serviceName=explode(",", $line)[0];
                    $RestartData=explode(",", $line)[1];
                    $StatusData=explode(",", $line)[2];
                    $serviceRestartMappingdict[$totalServices]= $serviceName.':'.$RestartData;
                    $serviceStatusMappingdict[$totalServices]= $serviceName.'_'.$StatusData;
                    $totalServices = $totalServices+1;
            }
    }
    $counter=0;
    //echo $serviceStatusMappingdict[0];
    fclose($fileServices);

    $counter=0;
    for ($i = 0; $i < count($serviceStatusMappingdict); ++$i){
            echo '<<<<<<<<<<<<<<<<<<<<<<<'.$serviceStatusMappingdict[$i].'>>>>>>>>>>>>>>>>>>>>>>>>>>>';
    }

如果我做了echo $serviceStatusMappingdict[0];这样的回声,我得到了值,但是当我使用循环来访问数据时,我没有得到任何值。

2 个答案:

答案 0 :(得分:1)

[编辑]问题来了,因为&#39;&lt;&#39;字符。摆脱它们,它将立即工作

要回答已经出现的以下评论,字符&#39;&lt;&#39;和&#39;&gt;&#39; html中的组合是指标签的打开和关闭。例如:<div>

问题来了,因为浏览器正在尝试将其作为一个未知元素进行编程,并且不知道如何处理它。如果您检查页面的html代码,您将能够看到信息实际存在,只是没有正确呈现。

答案 1 :(得分:0)

[编辑]根据Umpert parial回答,我尝试了这个并且它做了预期的行为。我们是否可以获得更多关于它为什么在您的情况下不起作用的信息:

<?php

 $array = array( '0' => "kakfa_ps -ef | grep kafka | grep server.properties",
            '1' => "zookeeper_ps -ef | grep zookeeper | grep zookeeper.properties",
            '2' => "schemaregistry_ps -ef | grep schema-registry | grep java",
            '3' => "influx_/sbin/service influxdb status | grep active | grep running",
            '4' => "mysql_/sbin/service mysql status | grep active | grep running",
            '5' => "cassandra_/sbin/service cassandra status | grep active | grep exited",
            '6' => "aerospike_/sbin/service aerospike status | grep active | grep running");
for($i=0;$i<count($array);++$i){
  echo '<<<<<<<<<<<<<<<<<<<<<<<'.$array[$i].'>>>>>>>>>>>>>>>>>>>>>>>>>>>';
}
 ?>

相同数量的&#39;&lt;&#39;和&#39;&gt;&#39;就像你的OP一样。只是为了确保。