У меня есть вид сложного массива, в котором динамически заполняется массив, в зависимости от количества типов дочерних и взрослых имен, записанных в форме, и я должен отправлять данные в одном массиве, но должен разделять детей и взрослых, а не одного взрослого, тогда ребенок теперь быть таким.
Вот нам мой код
$h = array (
'code' => $_SESSION['post_data']['canc_code'],
'first_name' => $_SESSION['post_data']['bofullname'],
'last_name' => $_SESSION['post_data']['bolastname'],
'email' => $_SESSION['post_data']['boemail'],
'special_request' => $_SESSION['post_data']['special_req'],
'phone_country' => $_SESSION['post_data']['bocountrycode'],
'phone_no' => $_SESSION['post_data']['bomobnum'],
);
$outerKey = 0;
foreach($_SESSION['post_data']['adult'] as $key => $adult){
$h['room_pax_details'][$outerKey] = [
'room_no' => $key,
];
$innerCounter = 0;
foreach($adult as $innerKey => $innerValue){
if(isset($adult['first_name'][$innerCounter])){
$h['room_pax_details'][$outerKey]['pax'][] = [
'firstname' => $adult['first_name'][$innerCounter],
'lastname' => $adult['last_name'][$innerCounter],
'type' => $adult['type'][$innerCounter],
];
if(isset($_SESSION['post_data']['child'][$key])){
foreach($_SESSION['post_data']['child'][$key]['first_name'] as $childKey => $child){
$h['room_pax_details'][$outerKey]['pax'][] = [
'firstname' => $_SESSION['post_data']['child'][$key]['first_name'][$childKey],
'lastname' => $_SESSION['post_data']['child'][$key]['last_name'][$childKey],
'type' => $_SESSION['post_data']['child'][$key]['type'][$childKey],
'age' => $_SESSION['post_data']['child'][$key]['age'][$childKey],
];
}
//unset($_SESSION['post_data']['child'][$key]);
}
$innerCounter++;
}
}
$outerKey++;
}
$fn = json_encode($h);
Ожидаемый образец json,
{
"first_name" : "James",
"last_name" : "Meitner",
"email" : "test@gmail.com",
"special_request" : "",
"phone_country":"+93",
"phone_no":"123123",
"room_pax_details" : [
{
"room_no" : "1",
"pax" : [
{
"firstname" : "James",
"lastname" : "Meitner",
"type" : "Adult"
},
{
"firstname" : "James2",
"lastname" : "Meitner2",
"type" : "Adult"
},
{
"firstname" : "Richard",
"lastname" : "Bohr",
"type" : "Child",
"age" : 5
},
{
"firstname" : "Richard",
"lastname" : "Bohr",
"type" : "Child",
"age" : 5
}
]
}, {
"room_no" : "2",
"pax" : [
{
"firstname" : "James",
"lastname" : "Meitner",
"type" : "Adult"
},
{
"firstname" : "Richard",
"lastname" : "Bohr",
"type" : "Child",
"age" : 5
}
]
}
]
}
Вот HTML, который динамически генерируется согласно числу комнаты и взрослые или детские.
<form class="last" method="POST" action="http://happeniz.wwwmi3-sr14.supercp.com/zoalnawp/notification/">
<input type="hidden" name="canc_code" value="3073364c685678b3630bda25416bb42ced39fb1b4cfb6fe45f336539740cd2e4b2bb0fce8ab848012e8bff8361956c9cb492d967660339bebaa79fc32495bc67fa39e09171eb21709b535a1f3e776fbd292bfcd601c48a77f8b55c759d555ed1c7a8fb3240f4c52be67df349b81c95104376aa4055b75dd98ffe0bd14fb9ce036bc4fe8375070fcd0410447f742c876e172aa93c998ac07aab46cd23564d5dc227f5b3229b1cb6253f1184853f8feb5a10712ace86aac8f14abd4c5032d258f5e19a7d246cf7f5d77fba3e053e2be524ce6a3ac7bef6eafb4b6b2efbc095d8a1e21ac52f95234d9d8e9ac471608693c9">
<div class="form-group row g-mb-25">
<div class="col-md-6 g-mt-20">
<label for="">Full Name</label>
<input class="form-control form-control-md" name="bofullname" type="text" required="required">
</div>
<div class="col-md-6 g-mt-20">
<label for="">Last Name</label>
<input class="form-control form-control-md" name="bolastname" type="text" required="required">
</div>
<div class="col-md-6 g-mt-20">
<label for="">Email</label>
<input class="form-control form-control-md" name="boemail" type="email" required="required">
</div>
<div class="col-md-2 g-mt-20">
<label for="">Country Code</label>
<input id="country-code" class="form-control form-control-md" name="bocountrycode" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Mobile Number</label>
<input id="mobile-number" class="form-control form-control-md" name="bomobnum" type="text" required="required">
</div>
<hr class="g-mt-10 g-mb-20">
<div class="col-sm-12 col-md-12 romms_namehead">
<p class="roomss"><strong>Room no 1 :</strong></p>
<p class="rooms_detail">Please fill the adults info :</p>
</div>
<div class="col-sm-12 col-md-12 dynamic_rooms">
<div class="col-md-4 g-mt-20">
<label for="">First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[1][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[1][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[1][type][]" type="text" readonly="" value="Adult">
</div>
<div class="col-md-4 g-mt-20">
<label for="">First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[1][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[1][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[1][type][]" type="text" readonly="" value="Adult">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[1][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[1][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="child[1][type][]" type="text" readonly="" value="Child">
<input name="child[1][age][]" type="hidden" value="7">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[1][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[1][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="child[1][type][]" type="text" readonly="" value="Child">
<input name="child[1][age][]" type="hidden" value="7">
</div>
</div>
<hr class="g-mt-10 g-mb-20">
<div class="col-sm-12 col-md-12 romms_namehead">
<p class="roomss"><strong>Room no 2 :</strong></p>
<p class="rooms_detail">Please fill the adults info :</p>
</div>
<div class="col-sm-12 col-md-12 dynamic_rooms">
<div class="col-md-4 g-mt-20">
<label for="">First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][type][]" type="text" readonly="" value="Adult">
</div>
<div class="col-md-4 g-mt-20">
<label for="">First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][type][]" type="text" readonly="" value="Adult">
</div>
<div class="col-md-4 g-mt-20">
<label for="">First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="adult[2][type][]" type="text" readonly="" value="Adult">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[2][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[2][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="child[2][type][]" type="text" readonly="" value="Child">
<input name="child[2][age][]" type="hidden" value="7">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child First Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[2][first_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Child Last Name</label>
<input id="mobile-number" class="form-control form-control-md" name="child[2][last_name][]" type="text" required="required">
</div>
<div class="col-md-4 g-mt-20">
<label for="">Type</label>
<input id="mobile-number" class="form-control form-control-md" name="child[2][type][]" type="text" readonly="" value="Child">
<input name="child[2][age][]" type="hidden" value="8">
</div>
</div>
</div>
<hr class="container-fluid">
<div class="col-md-12">
<label for="">Special Requests</label>
<textarea class="form-control form-control-md" name="special_req" cols="100" rows="3" placeholder="Please enter comments"></textarea>
</div>
<div class="col-md-12 g-mt-40">
<input type="hidden" name="totalrooms" value="2">
<input type="hidden" name="totaladults" value="Array">
<input type="hidden" name="totalchilds" value="">
<input type="hidden" name="totalprice" value="947">
<input type="hidden" name="curencyyy" value="AED">
<input id="" type="submit" name="submit1" value="Continue" class="btn form-control-md u-btn-orange border-20">
<!-- <button class="btn form-control-md u-btn-orange border-20" type="button">Continue</button> -->
</div>
</form>
Отредактировано: приведенные выше примерные данные приведены с двумя комнатами в одной комнате, если в одной комнате двое взрослых и два ребенка, поэтому они будут разделены сначала как взрослые, а затем как дети, но я получаю взамен одну взрослый потом ребенок потом взрослый потом ребенок таким образом, Нужны некоторые настройки кода для генерации массива.