#php #multidimensional-array
#php #многомерный-массив
Вопрос:
У меня есть двухмерный массив в формате ниже
$skillInfo = Array
(
"Mechanical" => Array
(
"0" => 100
"1" => 400
)
"Understanding" => Array
(
"0" => 200
)
"Application/Appreciation" => Array
(
"0" => 300
)
);
$skillMaster = [
["skillID" => 1, "skillName" => "Mechanical"],
["skillID" => 2, "skillName" => "Understanding"],
["skillID" => 3, "skillName" => "Application/Appreciation"]
];
$skillMaster
skillName
это то же $skillInfo
самое, что и ключи, поэтому мы можем заменить $skillInfo
ключи из $skillMaster
skillID.
Ожидаемый результат
Array
(
[1] => Array
(
[0] => 100
[1] => 400
)
[2] => Array
(
[0] => 200
)
[3] => Array
(
[0] => 300
)
)
мой код
foreach($skillInfo as $key1 => $val1){
$skillInfo[$key1][$skillMaster[$val1["skillID"]]] = $skillMaster[$val1["skillID"]] ?? [];
}
приведенный выше код работает не так, как ожидалось, пожалуйста, кто-нибудь, помогите мне.
Комментарии:
1.
$val1
это$skillInfo
элемент, которого у него нетskillID
.2. имя навыка присутствует
$skillInfo
в массиве, я хочу заменить вместо имениskillID
3. Я знаю, что это то, что ты хочешь сделать. Почему вы решили
$val1['skillID']
, что это сработает?
Ответ №1:
foreach($skillMaster as $item){
if(array_key_exists($item['skillName'], $skillInfo)){
$skillInfo[$item['skillID']] = $skillInfo[$item['skillName']];
unset($skillInfo[$item['skillName']]);
}
}
Комментарии:
1. Включение объяснения внесенных вами изменений было бы полезно как для ОП, так и для любых будущих читателей.