For循环打开名称中必须变量的文件

时间:2016-01-02 12:41:30

标签: php arrays json for-loop

您好我可能有一个非常愚蠢的问题。

我所拥有的是编写json文件的代码,在文件名中它会自动添加到递增数字的变量中。我想制作打开文件的代码并将数据写入网页。打开filename(1)(1).json的文件有效,但不会打开其他文件。

这是创建文件的代码。

$Array = array("User Index" => $UniqueIndex,"User Name" => $UniqueUserName,"Submition Index" => $SubmitionCount,"Time & Date" => $TimeDate,"Submition" => $_POST["submition"]);
$ArrayWrite = fopen("forumdata/forumsubmition/ForumSubmition($UniqueIndex)($SubmitionCount).json", "w");
fwrite($ArrayWrite, json_encode($Array));
fclose($ArrayWrite);

这是尝试打开文件的代码。

for ($Count = 0; $Count <= $blarg; $Count += 1)    
    for ($Count2 =0; $Count2 <= $blarg2; $Count2 += 1)
        if (file_exists("forumdata/forumsubmition/ForumSubmition($Count2)($Count).json"))
        {
            do
            {
                $ForumInfo = file_get_contents("forumdata/forumsubmition/ForumSubmition($Count2)($Count).json", "r");
                $ForumInfo2 = json_decode($ForumInfo, true);

                if ($ForumInfo2["Submition"] != null)
                    foreach($ForumInfo2 as $value)
                        echo "$value<br>";
            }
            while (file_exists($ForumInfo));
        }

1 个答案:

答案 0 :(得分:0)

为什么当你有2个Do While循环遍历文件时,你甚至会有for循环? 就这样做:

for ($count = 0; $count <= $blarg; $count += 1)    
    for ($count2 =0; $count2 <= $blarg2; $count2 += 1)
        if (file_exists("forumdata/forumsubmition/ForumSubmition($count2)($count).json"))
        {
                $forumInfo = file_get_contents("forumdata/forumsubmition/ForumSubmition($count2)($count).json", "r");
                $formattedForumInfo = json_decode($forumInfo, true);

                if ($formattedForumInfo["Submition"] != null)
                    foreach($formattedForumInfo as $value)
                        echo "$value<br>";
        }

我还将你的变量格式化为驼峰,而不是pascal。

你不应该使用do ... while循环的原因是因为你已经有了第二个for循环来遍历所有$blarg2计数。然后你有一个if结构来检查文件是否存在。那应该够了。无需再次检查。因为如果它不存在,它只会跳过它并进入第二个for循环中的下一个计数。