0

我有 2 个 php 数组,$array1并且$array2,如何仅在同一行制表符上打印数组的内容?

输入:

Array (
  [0] => "100"
  [1] => "98"
  [2] => "95"
)

Array (
  [0] => "http://google.com"
  [1] => "http://facebook.com"
  [2] => "http://yahoo.com"
)

输出:

http://google.com       100
http://facebook.com     98
http://yahoo.com        95

我试过了:file_put_contents('output.txt', $array1, "\t", $array2 );但是函数只能带2个参数!有简单的解决方法吗?

4

4 回答 4

2

是的,循环遍历元素并连接你的字符串:

for ($i = 0; $i < count($array1); $i++) {
    file_put_contents('output.txt', $array1[$i]."\t".$array2[$i], FILE_APPEND );
}

虽然file_put_contents可以像上面那样工作,但我会用fopen,fwrite和来实现它fclose

$fp = fopen("output.txt", "w+");
if ($fp) {
    for ($i = 0; $i < count($array1); $i++) {
        fwrite($fp, $array1[$i]."\t".$array2[$i] );
    }
    fclose($fp);
}

它会更有效率,因为文件只打开一次。它还使您可以灵活地根据需要编写数据。

于 2013-08-22T07:38:44.957 回答
2

试试array_combine喜欢

$new_array = array_combine($array2 , $array1);
file_put_contents('output.txt', $new_array);
于 2013-08-22T07:38:54.230 回答
0

您需要组合数组并将它们保存为可读格式。

$saveArray = json_encode(array_combine($arr1 , $arr2));
file_put_contents('array.txt', $saveArray);

并让阵列回来

$array = json_decode(file_get_contents('array.txt', true));

如果你想以可读的格式保存数组,你可以试试这个

$saveArray = print_r(array_combine($arr1 , $arr2), true);
file_put_contents('array.txt', $saveArray);    
于 2013-08-22T07:41:22.170 回答
0

由于您的输出示例的格式很好,并且众所周知,根据您用于查看文件的应用程序,选项卡是不可预测的,您可以考虑用空格填充字符串:

$out = '';
$max = max(array_map('strlen', $arr2))+5;

foreach(array_combine($arr2, $arr1) as $key => $val){
    $out .= sprintf("%-{$max}s%s\n", $key, $val);
}

file_put_contents('output.txt', $out);

例子

于 2013-08-22T08:25:13.597 回答