Как в сообщении об ошибке вы пытаетесь преобразовать массив в строку, что невозможно.
Взгляните на этот пример:
<?php
$array = [1,2,3,4,5];
$newVar = "This is my array: $array";
?>
Это приводит к ошибке E_NOTICE : type 8 -- Array to string conversion -- at line 3
.
Вы пытаетесь вывести массив, в котором есть несколько значений, как часть вашей строки. PHP не знает, как вы хотите это сделать (нужно ли просто перечислить все переменные массива? Он ставит пробел между ними? Запятая? Запятая и пробел? И т. Д.)
Итак, вместо этого вам нужно преобразовать массив в строку самостоятельно. Один из способов сделать это - использовать функцию join()
в PHP.
join()
принимает 2 параметра: separator
и array
и выводит строку, представляющую собой все значения массива, разделенные вашим разделителем.
Таким образом, приведенный выше пример становится:
<?php
$array = [1,2,3,4,5];
$newVar = "This is my array: ".join(", ", $array);
?>
Какие выходы This is my array: 1, 2, 3, 4, 5
Обновлено на основе комментария
Чтобы использовать 2 или более массивов в одном и том же цикле foreach, вам просто нужно преобразовать его в цикл for:
for($i = 0, $i < count($array1); $i++) {
echo $array1[$i].': '.$array2[$i];
}
Есть способ сделать это и с циклом foreach, но я считаю, что это не совсем чистый способ сделать это для обслуживания (только мои предпочтения).
foreach($array1 as $index => $value) {
echo $value.': '.$array2[$index];
}