Я хочу делать:
Удалите дочерний массив и объедините его элемент в родительский массив.
Пример:
array
'first_name' => string 'sushil' (length=6)
'last_name' => string 'asfasfaf' (length=8)
'gen' => string 'Male' (length=4)
'language' => string 'PHP' (length=3)
'biodata' => string 'sfsafsaf hdffd ' (length=15)
'hobbies' =>
array
0 => string 'gaming' (length=6)
1 => string 'football' (length=8)
2 => string 'cricket' (length=7)
'academic_qualification' => string 'Bachelor' (length=8)
Я хочу изменить как выше шаг:
//finds if child array exists. If exists interchange key and value and update value to '1'.
array
'gaming' => int 1
'football' => int 1
'cricket' => int 1
И, наконец, удалить исходный дочерний массив и слить модифицированный дочерний элемент массива в родительский массив. Моя ожидаемая форма массива:
array
'first_name' => string 'sushil' (length=6)
'last_name' => string 'asfasfaf' (length=8)
'gen' => string 'Male' (length=4)
'language' => string 'PHP' (length=3)
'biodata' => string 'sfsafsaf hdffd ' (length=15)
'academic_qualification' => string 'Bachelor' (length=8)
'gaming' => int 1
'football' => int 1
'cricket' => int 1
Я пробовал как следующий, но не работал:
$submited_data = $_POST;
var_dump($submited_data);
foreach($submited_data as $value){
if(is_array($value)) { //checks if array contains array.
$a = array_flip($value); //then interchange
var_dump($a);
foreach($a as $key=>$b){
$a[$key] = 1; //update all value to '1'.
}
array_push($submited_data,$a); // here is the problem I cannot proceed to furthur step. Please help me. How to merge modified child array to parent array.
var_dump($a);
}
}
Спасибо.
Я просто переписал ваш код. Скажите, пожалуйста, если что-нибудь пойдет не так!
<?php
$submited_data = $_POST;
foreach($submited_data as $key => $data)
{
if(is_array($data))
{
foreach($data as $sub_data)
{
$submited_data[$sub_data] = 1;
}
unset($submitted_data[$key]);
}
}
предположим, что $array
- это массив с дочерним массивом,
$mergedArray = [];
array_walk_recursive($array, function($a,$b) use (&$mergedArray) { $mergedArray[$b] = $a; });
echo '<pre>';
print_r($mergedArray);