PHP Преобразование смешанного последовательного и ассоциативного массива в ассоциативный массив

Я хотел бы построить массив $ goal только из $ initial. Есть идеи? Спасибо

Изменить: вопрос может быть, как отличить ассоциативные части от последовательных.

$intial=[
"one",
"two"=>"myTwo",
"three",
"four"=>"myFour"];
$goal=[
"one"=>null,
"two"=>"myTwo",
"three"=>null,
"four"=>"myFour"];

1

Решение

«Последовательные» части будут иметь числовые ключи, поэтому, если ваши «ассоциативные» ключи всегда будут строками, вы можете использовать это для различения:

$goal = [];
foreach ($initial as $key => $value) {
if (is_numeric($key)) {
$goal[$value] = null;
} else {
$goal[$key] = $value;
}
}
1

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

$goal = [];
foreach($initial as $key => $val){
if(isset($val){
$goal[$key] = $val;
}else{
$goal[$key] = $key;
}
}
0

По вопросам рекламы [email protected]