Мне удалось воспроизвести ошибку «Преобразование массива в строку» при использовании команды implode
, выполнив следующую строку кода:
implode(";", [[]]); // PHP Notice: Array to string conversion in php shell code on line 1
Для преобразования вложенного массива в строку я обнаружил, чтосработал цикл foreach
:
$nestedArray = ['outerKeyOne' => ['innerKeyOne' => 'valueOne'], 'outerKeyTwo' => ['innerKeyTwo' => 'valueTwo']];
$arrayOfStrings = [];
foreach ($nestedArray as $key => $value) {
$arrayOfStrings[] = implode(",", $value);
}
implode(";", $arrayOfStrings); // string(17) "valueOne;valueTwo"
Вторая ошибка, связанная со строкой $val = (object) $list;
, связана с попыткой встроить объект в строку $sql
.Кажется, что объект - это не то, что вам нужно, если только это не объект, в котором реализован метод __toString()
.
Надеюсь, это поможет вам.Использование var_dump
или чего-то подобного предоставило бы больше отладочной информации, чтобы лучше диагностировать проблемы вместе с вышеупомянутыми сообщениями об ошибках.Вот как я придумал приведенный выше код.