【问题标题】:Creating a string from a Php array and writing it to a text file从 PHP 数组创建字符串并将其写入文本文件
【发布时间】:2020-03-06 01:54:11
【问题描述】:

我有一个这样的数组:

Array
(
    [0] => firstname1,
    [1] => lastname1,
    [2] => firstname2,
    [3] => lastname2,
    [4] => firstname3,
    [5] => lastname3
)

现在我想创建一个包含此内容的文本文件:

firstname1|lastname1#firstname2|lastname2#firstname3|lastname3#

我该怎么做?

【问题讨论】:

标签: php file implode


【解决方案1】:

您可以成对遍历数组,连接您选择的字符,构建一个字符串,然后将其写入带有file_put_contents 的文件。

<?php
$names = array(
    'firstname1',
    'lastname1',
    'firstname2',
    'lastname2',
    'firstname3',
    'lastname3'
);

for(
    $i = 0, $n = count($names), $str = '';
    $i < $n;
    $i += 2
)
{
    $str .= $names[$i] . '|' . $names[$i+1] . '#';
}
file_put_contents('/tmp/names.txt', $str);

或者为了构建字符串,我们可以将原始数组分块成对:

$str = '';
foreach(array_chunk($names, 2) as list($first, $second))
    $str .= $first . '|' . $second . '#';

【讨论】:

    【解决方案2】:
    $array = array(
        'firstname1',
        'lastname1',
        'firstname2',
        'lastname2',
        'firstname3',
        'lastname3'
    );
    $str = implode('@', $array) . '@';
    $str = preg_replace('/(.+?)@(.+?)@/', '$1|$2#', $str);
    file_put_contents('/tmp/file.txt', $str);
    

    编辑灵感来自:https://stackoverflow.com/a/16687155/3392762,以及之前的内容。

    【讨论】:

    • 这是(到目前为止)唯一有意义的答案。
    • 这实际上并不正确,因为我没有正确读取输出,这是我的错。我会尽快编辑它
    • 没问题。我不是在批评它,尽你所能;-)
    • @Fred-ii- 我有一个的问题,你知道答案......不是吗?那么为什么你不在我的问题下写一个答案呢?真的是为什么?
    • @stack 所以我是被“枪杀”的人,叹气。双富。
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 2020-02-03
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多