duanmei2805
duanmei2805
2016-03-16 15:31
浏览 27

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

I am generating a dictionary in PHP where key and values are added to the dictionary.

But I am not able to fetch the values back. I am using following code:

    //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].'>>>>>>>>>>>>>>>>>>>>>>>>>>>';
    }

If I do an echo like echo $serviceStatusMappingdict[0];, I get the value but when I use a loop to access the data I do not get any value.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • duanlei8119
    duanlei8119 2016-03-16 15:37

    [EDIT] The problem is coming because of the '<' character. Get rid of them and it will work straight away

    To answer the following comments that have appeared, the characters '<' and '>' in combination in html refer to an opening and closure of a tag. ex: <div>

    The problem comes because the browser is trying intrepreting it as an unknow element and does not know what to do with it. If you inspect the html code of the page you'll be able to see that the information is actually there, just not properly rendered.

    点赞 评论
  • douchi5822
    douchi5822 2016-03-16 16:00

    [EDIT] Following Umpert parial answer, I tried this and it does the expected behavior. Can we have more informations on why it does not work in your case :

    <?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].'>>>>>>>>>>>>>>>>>>>>>>>>>>>';
    }
     ?>
    

    Same amount of '<' and '>' as in your OP. Just to make sure.

    点赞 评论

相关推荐