mysql — PHP Объединение двух массивов для получения ожидаемого o / p

У меня есть массив со значениями

[{
"id": "17",
"pf_label": "Gender"},
{
"id": "18",
"pf_label": "Age"},
{
"id": "12",
"pf_label": "Address Line"}
]

и у меня есть другой массив

[{
"": "",
"17": "male",
"18": "27"}, {
"": "",
"17": "female",
"18": "26",
"12": "japan"}]

Мне нужен массив значений с двумя массивами, совпадающими с его идентификатором.

ожидаемый результат

[{
"": "",
"Gender":"male""Age": "27"}, {
"": "",
"Gender": "female",
"Age": "26",
"Address Line": "japan"}]

Может ли кто-нибудь помочь получить ожидаемый результат.

0

Решение

Пожалуйста, попробуйте решение ниже

$json = '[{
"id": "17",
"pf_label": "Gender"},
{
"id": "18",
"pf_label": "Age"},
{
"id": "12",
"pf_label": "Address Line"}
]';

$jsondec = json_decode($json,true);
foreach ($jsondec as $key => $value) {
$newjson[$value['id']] = $value['pf_label'];
}

$json2 = '[{
"": "",
"17": "male",
"18": "27"}, {
"": "",
"17": "female",
"18": "26",
"12": "japan"}]';

$jsondec2 = json_decode($json2,true);
foreach ($jsondec2 as $key => $value) {
foreach ($value as $key => $value) {
$newary[$newjson[$key]] = $value;
}
$finalary[] = $newary;
}

$result = json_encode($finalary);

Надеюсь, что это поможет вам!

0

Другие решения

Вы можете попробовать это!

<?php
$jsonString1 = '[{
"id": "17",
"pf_label": "Gender"},
{
"id": "18",
"pf_label": "Age"},
{
"id": "12",
"pf_label": "Address Line"}
]';


$jsonString2 = '[{
"": "",
"17": "male",
"18": "27"}, {
"": "",
"17": "female",
"18": "26",
"12": "japan"}]';


$array1 = json_decode($jsonString1, true);
$indexes = array();
foreach ($array1 as $element) {
$indexes[$element['id']] = $element['pf_label'];
}


$array2 = json_decode($jsonString2, true);
foreach ($array2 as $element) {
foreach ($element as $key => $value) {
if ($key) {
$singleElement[$indexes[$key]] = $value;
} else {
$singleElement[""] = "";
}
}
$result[] = $singleElement;
}


var_dump($result);

демонстрация

0