为什么我的.Explode()不能处理字符串

时间:2014-05-24 23:27:22

标签: php

我正在尝试将一个字符串分解为基于逗号的列表,我之前已经这样做了但由于某种原因,这现在无法正常工作。

仅供参考,我称之为echo echo $members[6];的行返回2009, 7, 146, 277.00, Company 6,因此我知道所有内容都已妥善存储到$members

我也知道,通过调用$arrlength,它会返回我填充到$members的正确字符串大小。

所以我有正确的数据并且格式正确但是我的 index.php 上打印的唯一行是echo $members[6];语句,因为我有一个非常长的滚动条我我也猜测echo "<br><br>";也打印出来。

非常感谢任何帮助。

<html>
<head>
</head>
<body>

<?php
$str_data = file_get_contents("file.json");
$data = json_decode($str_data,true);

foreach ($data as $key => $value) 
{   
    foreach ($value as $k => $v) 
    { 
       $t = "";
        foreach ($v as $kk => $vv) 
        { 
             $t = $t . ", " . $vv;         
        }
        $members[] = substr($t, 2); //cuts out initial comma + space      
    }
}
$arrlength=count($members);

echo $members[6]; // returns 2009, 7, 146, 277.00, Company 6

for ($i=0; $i<$arrlength; $i++) 
{
     list($year, $rank, $revenue, $profit, $company) = explode(",", $members[i]);
     $year = trim($year);
     $rank = trim($rank);
     $revenue = trim($revenue);
     $profit = trim($profit);
     $company = trim($company);

     echo $year;
     echo $rank;
     echo $revenue;
     echo $profit;
     echo $company;
     echo "<br><br>";   
     }
?> 
</body>
</html>

2 个答案:

答案 0 :(得分:2)

它不起作用,因为您错过了$

explode(",", $members[i]);

应该是:

explode(",", $members[$i]);

你应该turn on errors

答案 1 :(得分:1)

您在爆炸功能中缺少$

explode(",", $members[$i])

代码不知道要爆炸的元素,如果你打开了警告/错误,它会告诉你:)

一旦我添加了代码按预期工作。