PHP Преобразование смешанного последовательного и ассоциативного массива в ассоциативный массив - PullRequest
0 голосов
/ 25 апреля 2018

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

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

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

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018
$goal = []; 
 foreach($initial as $key => $val){ 
   if(isset($val){ 
     $goal[$key] = $val; 
   }else{ 
      $goal[$key] = $key; 
   } 
  }  
0 голосов
/ 25 апреля 2018

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

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