#php #php-7
#php #php-7
Вопрос:
<?php
$userData = [
[
"UID" => "5f10482574d83d4b726fe5",
"name" => "Yug Gill",
"orgID" => "5f10481d74d83d4b726",
"imageURL" => "female.png"
]
];
$userProductsData = [
[
"UPID" => "5f10482574d83d4b6fe007",
"UID" => "5f10482574d83d4b726fe5",
]
];
$userDetailsResult = [];
foreach ($userData as $key => $value) {
$userData[$key]["UPID"] = $userProductsData[$value["UID"]] ?? [];
}
Ожидаемый результат
$userData = [
[
"UID" => "5f10482574d83d4b726fe5",
"name" => "Yug Gill",
"orgID" => "5f10481d74d83d4b726",
"imageURL" => "female.png",
"UPID" => "5f10482574d83d4b6fe007"
]
];
у меня есть два массива, UID
общие для обоих массивов, теперь я хочу взять UPID из $userProductsData
и вставить в $userData
, я пытался работать неправильно, пожалуйста, кто-нибудь обновит мой код, пожалуйста
?>
Комментарии:
1.
$userProductsData[$value["UID"]]
становится$userProductsData['5f10482574d83d4b726fe5']
, и в этом массиве нет элемента по этому ключу.2. выполните каждый цикл
$userProductsData
, затем внутри каждого цикла$userData
, затем используйтеif
3. Почему
$userDetailsResult = [];
?
Ответ №1:
Попробуйте это.
$userData = [
[
"UID" => "5f10482574d83d4b726fe5",
"name" => "Yug Gill",
"orgID" => "5f10481d74d83d4b726",
"imageURL" => "female.png"
]
];
$userProductsData = [
[
"UPID" => "5f10482574d83d4b6fe007",
"UID" => "5f10482574d83d4b726fe5",
]
];
$userDetailsResult = [];
foreach ($userProductsData as $key => $value) {
$userData[$key]["UPID"] = $value['UPID'];
}
print_r($userData);
Комментарии:
1. в одном цикле мы не можем этого достичь?
2. Что вы подразумеваете под одиночным циклом? Это из-за 2 циклов foreach? Если это так, вы действительно можете удалить первый цикл foreach.
Ответ №2:
Ваш $userProductsData
— это обычный массив, он имеет индексы 0, 1, 2 и т.д… Затем вы пытаетесь получить элемент из этого массива с помощью строкового ключа "5f10482574d83d4b726fe5"
.
$userProductsData
должен быть такой ключевой массив:
$userProductsData = [
"5f10482574d83d4b726fe5" => [
"UPID" => "5f10482574d83d4b6fe007",
"UID" => "5f10482574d83d4b726fe5",
],
];
Затем вы можете получить элемент из этого массива по ключу "5f10482574d83d4b726fe5"
.