Замена подстрок значениям вложенных массивов на значения из другого массива
Цикл ниже выводит значения из массива $defaultValues, в этом массиве есть 2 вложенных массива это "colors" и "lessons".
А также этот цикл берет значения подстрок из массива $search и заменяет их на значения из массива $replace.
Вопрос таков: Как заменить значения двум вложенным массивам "colors" и "lessons" в $defaultValues на значения: "colors"=>["4", "5", "6"] и "lessons"=>["7", "8", "9"] из $replace"
Я не могу понять как это сделать, данный мой код выводит такое:
Ваше имя: 1
Ваш возраст: 2
Откуда вы: 3
Ваш любимый цвет: 4
Выберите курсы: 7
Ваш комментарий: 10
А хотелось бы, чтобы код выводил это:
Ваше имя: 1
Ваш возраст: 2
Откуда вы: 3
Ваш любимый цвет: 4,5,6
Выберите курсы: 7,8,9
Ваш комментарий: 10
$defaultValues = [
"name" => "Ваше имя: <div class='user'> Введите имя </div>",
"age" => "Ваш возраст: <div class='age'> Укажите свой возраст </div>",
"from" => "Откуда вы: <div class='from'> Напишите откуда вы </div>",
"colors" => ["Ваш любимый цвет: <div class='colors'> Вы не указали свой любимый цвет </div>"],
"lessons" => ["Выберите курсы: <div class='lessons'> Вы не выбрали ни одного курса </div>"],
"comment" => "Ваш комментарий: <div class='comment'> Без комментариев </div>",
];
$search = [
"name" => "Введите имя",
"age" => "Укажите свой возраст",
"from" => "Напишите откуда вы ",
"colors" => ["Вы не указали свой любимый цвет"],
"lessons" => ["Вы не выбрали ни одного курса"],
"comment" => "Без комментариев",
];
$replace = [
"name" => "1",
"age" => "2",
"from" => "3",
"colors" => ["4", "5", "6"],
"lessons" => ["7", "8", "9"],
"comment" => "10",
];
foreach($defaultValues as $key => $items){
echo "<div class='block'>";
if(is_array($items)){
foreach($items as $child){
$items = str_replace($search[$key], $replace[$key], $child);
}}
echo $items = str_replace($search[$key], $replace[$key], $items);
echo "</div>";
}