将数组保存到制表符分隔文件php

时间:2016-10-02 01:23:03

标签: php arrays

我有一个函数应该将数组保存到我给它的文件中,但是每个数组变量应该是制表符分隔的...此时我有函数但是它没有创建任何文件和它没有写任何东西......也是出于某些原因,当我尝试从另一个页面给出一个数组时,它给了我一个未定义的索引错误,即使我在两个页面上都启动了一个会话..你可以帮助任何一个太

function saveorder($file,$arr){
@ $fp = fopen($file, 'w');

    flock($fp, LOCK_EX);

    if (!$fp) {
      echo "<p>Your order could not be processed at this time.</p>";
    }
    else {
      fwrite($fp, _SESSION);
      flock($fp, LOCK_UN);
      fclose($fp);

      echo("<p>Order written to $file file.</p>");
    }    

}

1 个答案:

答案 0 :(得分:0)

不知道什么是_SESSION(可能是$ _SESSION?),不知道你想怎么编写你的数组,但这段代码对我有用:

$b = array('test' => 'result', 'another' => 'other');
saveorder('test.txt', $b);
function saveorder($file,$arr){
    @ $fp = fopen($file, 'w');

    flock($fp, LOCK_EX);
    $string = '';
    foreach($arr as $key => $result)
        $string .= "$key: $result \n";

    if (!$fp) {
      echo "<p>Your order could not be processed at this time.</p>";
    }else{
      fwrite($fp, $string);
      flock($fp, LOCK_UN);
      fclose($fp);

      echo("<p>Order written to $file file.</p>");
    }    
}

fwrite第二个参数必须是一个字符串,因此您可以将数组格式化为字符串,但是请

编辑:

如果数组是多维的,您可以使用this link

上的此功能
$string = implode("&",array_map(function($a) {return implode("~",$a);},$arr));