我有2个php数组,$array1
和$array2
,如何在同一行选项卡上分别打印数组内容?
INPUT:
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个参数!有一个简单的解决方法吗?
答案 0 :(得分: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);
}
它会更有效率,因为文件只打开一次。它还使您可以灵活地编写所需的数据。
答案 1 :(得分:2)
尝试array_combine
喜欢
$new_array = array_combine($array2 , $array1);
file_put_contents('output.txt', $new_array);
答案 2 :(得分: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);
答案 3 :(得分: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);