2014-11-14 3 views
1

Я получаю и массив ошибок для ошибки преобразования строки в строке 11 Мне нужно сравнить массив $ result с массивом $ file, а затем написать FILE с данными результата $. Другими словами, FILE и содержащиеся в нем данные постоянно обновляются с результатом $Ошибка строки преобразования строки в строку 11

сравнение -> переписать -> повторить при следующем выполнении.

Примечание: .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)); 
+0

ошибка в строке 11 ... И ошибка? Oo –

+0

Посмотрите на это: http://stackoverflow.com/questions/5653241/using-array-intersect-on-a-multi-dimensional-array –

+0

При задании вопросов о форме «почему не ______ работать? «Я предлагаю вырезать все, что усложняет этот пример. В этом случае это операции с файловой системой. Они затрудняют другие моделирование вашей проблемы, и (здесь), вероятно, затрудняют вам отладку того, что фактически является неправильным использованием 'array_intersect()'. –

ответ

0

I Полагают, что array_intersect используется только в одномерных массивах, и он пытается обрабатывать вложенные массивы как строку для сравнения равенства. Однако, глядя на документацию, вы увидите функцию array_uintersect, где вы можете написать свою собственную функцию сравнения в качестве обратного вызова. Вы не указали много информации о том, каковы требования, но если вы это сделаете, я с удовольствием помогу

+0

Mauricio Trajano Я сформулировал требования очень четко сравнить -> переписать -> повторить при следующем выполнении. Предупреждение: array_uintersect(): требуется не менее 3 параметров, 2 приведено в –

+0

. Правый третий параметр - это функция для сравнения массивов. –

+0

. Вы не указали в своем вопросе, как они сравниваются –

Смежные вопросы