Как в PHP превратить массив в строку внутри foreach? Всех приветствую, друзья. Битый час не могу разобраться с, вроде как, простой штуковиной.
Есть foreach, внутри которого разбираю данные. И вот одни из этих данных лежат в виде json. Делаю json_decode и получаю массив.
Выглядит это как-то так. foreach ($orders as $order) {
//Получаем и декодируем контакты из заказа
$json = $order->get('contacts');
$contacts = json_decode($json);
//Создаём плейсхолдеры для чанка
$ar = array(
'contacts' => $contacts,
);
$modx->setPlaceholders($ar, 'order.');
//Получаем чанк оформления и вводим результат
$view = $modx->getChunk($chank);
echo $view;
}
И вот нужно, чтобы внутри данные уже появились в виде$ar = array(
'fullname' => $lable . ':' . $value
);
Массив имеем такой вид:[
{
"name":"fullname",
"value":"Петя",
"label":"Имя"
},
{
"name":"email",
"value":"dfsf@gmail.com",
"label":"Адрес эл. почты"
},
{
"name":"phone",
"value":"555-555",
"label":"Телефон"
},
{
"name":"message",
"value":"",
"label":"Комментарий"
}
]
Всем заранее спасибо, друзья!

21 Авг 2019 в 07:00
213 +1
0
Ответы
1

Для того, чтобы перевести массив в строку внутри foreach, можно использовать функцию implode(). В вашем случае, чтобы получить строку вида 'fullname:Петя', можно использовать следующий код внутри вашего foreach:

foreach ($contacts as $contact) {
$string = $contact['label'] . ':' . $contact['value'];
echo $string . "<br>";
}

Этот код пройдет по каждому элементу массива $contacts, создаст строку вида 'label:value' и выведет ее на экран. Если вам нужно сохранить полученные строки в виде массива, то можете сделать следующее:

$result = array();
foreach ($contacts as $contact) {
$string = $contact['label'] . ':' . $contact['value'];
$result[] = $string;
}

После выполнения этого кода, в переменной $result будет храниться массив строк вида 'label:value'.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир