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