【发布时间】:2014-11-14 07:56:44
【问题描述】:
我在第 11 行得到错误数组到字符串的转换错误 我需要将 $result 数组与 $file 数组进行比较,然后用 $result 数据覆盖 FILE。换句话说,FILE 和它所包含的数据不断地用 $result 更新
比较 -> 覆盖 -> 在下次执行时重复。
注意:.db 文件在第一次循环时为空,但在第一次写入时填充。
数组到字符串转换错误的示例代码:
<?php
$id = $argv[1]; //variable for inbound
$result = array(
'return' => array(
array(1,2,3),
array(6,2,3),
array(3,2,3),
)
);
function getdiff($new, $old) {
$diff = array_intersect($new, $old);
return $diff;
}
$old = file_exists('1.db') ? json_decode(file_get_contents('1.db'), 1) : array();
$arrayDiffresult = getdiff( $result, $old);
file_put_contents('1.db', json_encode($result));
print_r(
getdiff($result, $old)
);
?>
我尝试了第二种方法,但在比较点第 9 行出现同样的错误。
$result = array(
'return' => array(
array(1,2,3),
array(5,2,3),
array(3,2,3),
)
);
$lines = file("myDB.db");
$arrayDiffresult = array_diff ( $result['return'], $lines);
file_put_contents('myDB.db', print_r($result['return'], true));
【问题讨论】:
-
第 11 行出现错误...错误是什么? O.o
-
当问“为什么 ______ 不起作用?”形式的问题时,我建议删除任何使示例复杂化的内容。在这种情况下,这就是文件系统操作。它们使其他人难以模拟您的问题,并且(此处)可能使您更难调试实际上是滥用
array_intersect()的内容。 -
@k.tarkin 你的是迄今为止最好的答案。至少您提供了代码,我可以将其放入编译器并查看它是否有效。我现在正在我的代码上对其进行测试。