@forwox

Как объединить значения двух массива в один на PHP?

Доброго времени суток!
Как объединить 2 массива в один?

1 МАССИВ
$arr_1 = '{ 
  "description": "DESC", 
  "affter": {
    "text": "TEXT"
  }
}';

2 МАССИВ
$arr_2 = '{
  "name": "Название",
  "description": "Описание", 
  "affter": {
    "text": "после",
    "icon": "иконка до"
  }
}';

Нужно получить
$arr_all = '{
  "name": "Название",
  "description": "DESC", 
  "affter": {
    "text": "TEXT",
    "icon": "иконка до"
  }
}';

array_merge() , array_merge_recursive(), array_replace(), array_combine() - не работают ((
  • Вопрос задан
  • 301 просмотр
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Для начала стоит понимать что в вопросе $arr_1 и $arr_2 это не массивы PHP, а строки.
А получить желаемый результат можно буквально так:
<?php
$arr_1 = '{ 
  "description": "DESC", 
  "affter": {
    "text": "TEXT"
  }
}';

$arr_2 = '{
  "name": "Название",
  "description": "Описание", 
  "affter": {
    "text": "после",
    "icon": "иконка до"
  }
}';

$arr_1 = json_decode($arr_1, true);
$arr_2 = json_decode($arr_2, true);


$arr_all = [
   "name" => $arr_2["name"],
   "description" => $arr_1["description"],
   "affter" => [
        "text" => $arr_1["affter"]["text"],
        "icon" => $arr_2["affter"]["icon"],
    ],
];
$arr_all = json_encode($arr_all, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);

echo $arr_all;


spoiler
5fa15022066b5309899913.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin
php, WordPress разработка сайтов artzolin.ru
Попробуйте так

$arr_1 = '{ 
  "description": "DESC", 
  "affter": {
	"text": "TEXT"
  }
}';

$arr_2 = '{
  "name": "Название",
  "description": "Описание", 
  "affter": {
	"text": "после",
	"icon": "иконка до"
  }
}';

$arr_1 = json_decode( $arr_1, true );
$arr_2 = json_decode( $arr_2, true );

$arr_all = array_replace_recursive( $arr_2, $arr_1 );
var_dump( $arr_all );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы