PHP 从一个数组中构建多行文本,然后有效地将它们写入文件


PHP build multiple lines of text from an array, and then write them to file efficiently

所以如果我有一个类似于以下内容的数组:

Array
(
[0] => Array
    (
        [Name] => Ron
        [Date] => 9/23/10
        [Title] => Boss
        [Activity] => Soccer
    )
[1] => Array
    (
        [Name] => Tim
        [Date] => 9/23/10
        [Title] => player
        [Activity] => Soccer
    )
[2] => Array
    (
        [Name] => Jim
        [Date] => 9/23/10
        [Title] => manager
        [Activity] => Soccer
    )
[3] => Array
    (
        [Name] => Lud
        [Date] => 9/23/10
        [Title] => employee
        [Activity] => Soccer
    )
[4] => Array
    (
        [Name] => Ron
        [Date] => 9/23/10
        [Title] => sub boss
        [Activity] => Soccer
    )
[5] => Array
    (
        [Name] => Lev
        [Date] => 9/23/10
        [Title] => mini boss
        [Activity] => Soccer
    )
[6] => Array
    (
        [Name] => Timpthy
        [Date] => 9/23/10
        [Title] => super boss
        [Activity] => Soccer
    )
[7] => Array
    (
        [Name] => Jimbo
        [Date] => 9/23/10
        [Title] => final battle
        [Activity] => Soccer
    )
[8] => Array
    (
        [Name] => El
        [Date] => 9/23/10
        [Title] => link
        [Activity] => Soccer
    )
)

但是 MASSIVE,我想遍历每个数组元素并以这样的方式格式化数据:

Name|Date|||||Title||||||||||Activity|||||||||||||||
Name|Date|||||Title||||||||||Activity|||||||||||||||
Name|Date|||||Title||||||||||Activity|||||||||||||||
Name|Date|||||Title||||||||||Activity|||||||||||||||
Name|Date|||||Title||||||||||Activity|||||||||||||||

(基本上是一个CSV,但有多个不同的分隔符)

然后我想将这些字符串写入.txt文件,最有效的方法是什么?一个简单的 foreach 循环能解决问题吗?

此外,我无法找到一种将每组唯一值处理为字符串的方法 - 所以我很难弄清楚如何获得

[0] => Array
    (
        [Name] => Ron
        [Date] => 9/23/10
        [Title] => Boss
        [Activity] => Soccer
    )
[1] => Array
    (
        [Name] => Tim
        [Date] => 9/23/10
        [Title] => player
        [Activity] => Soccer
    )

到输出

Ron|9/23/10|||||Boss||||||||||Soccer|||||||||||||||
Tim|9/23/10|||||player||||||||||Soccer|||||||||||||||

这是我最好的猜测:

$finalstring;
$tempstring;
foreach($Array as $key)
{
    $i = 0;
    foreach($Array as $value)
    {
        $i+= 1;
        if($i == 1)
        {           
            $tempstring  . $value. "|";
        }
        if($i == 2)
        {           
            $tempstring  . $value . "|||||";
        }
        if($i == 3)
        {           
            $tempstring  . $value . "||||||||||";
        }
        if($i == 4)
        {           
            $tempstring  . $value . "|||||||||||||||||";
        }
    }
    $finalstring . $tempstring . "/n";
}
$fh = fopen("text.txt", "w");
fwrite($fh, $finalstring);

有没有一个简单的函数可以让我将这些值集中的每一个格式化为预先格式化的字符串,然后有效地将这些字符串写入文件?

您是否正在寻找节省空间的解决方案或效率?对于第二种情况,您可以简单地使用 json (json_encode)。

(对于第一种情况,仅使用简单的分隔符,您可以使用空白字符)。