Я хочуПроблем создание многомерного массива в PHP
Я хочу, чтобы массив вида:
Array
(
[item1] => Array
(
[0] => Array
(
[paid] => 500
[nname] => Lastname
[vname] => Firstname
[mail] => [email protected]
)
[1] => Array
(
[paid] => 200
[nname] => Lastname2
[vname] => Firstname2
[mail] => [email protected]
)
)
[item2] => Array
(
[0] => Array
(
[paid] => 100
[nname] => Lastname3
[vname] => Firstname3
[mail] => [email protected]
)
)
Это массив, где у меня есть, как несколько платежей за один пункт. И я хочу сохранить все детали из каждого платежа в виде массива в массив элемента.
То, что я
$paidgift = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nname = $row['nname'];
$vname = $row['vname'];
$paid = $row['paidprice'];
$mail = $row['mail'];
$gift = $row['title'];
if (array_key_exists($gift, $paidgift)) {
//Item already exists in $paidgift
$paymentdetails = array('paid' => $paid,
'nname' => $nname,
'vname' => $vname,
'mail' => $mail,
);
$paidgift[$gift][] = $paymentdetails;
} else {
//Item doesn't exist in array $paidgift
$giftarray = array();
$paymentdetails = array('paid' => $paid,
'nname' => $nname,
'vname' => $vname,
'mail' => $mail,
);
array_push($giftarray, $paymentdetails);
array_push($paidgift, $giftarray);
}
}
результат моего кода
Теперь я застрял с моей фрагмент кода. Проблема в том, что мой код не вставляет существующий платеж в правильный массив. Этот раздел кода: $paidgift[$gift][] = $paymentdetails;
Вместо этого он всегда создает новый массив элементов и толкает массив paymentsdetails во вновь созданный массив.
Надеюсь, этого достаточно, чтобы понять мою проблему. Пожалуйста, спросите, не ясно ли что-то.
'$ paidgift [$ подарок] []' это не будет работать. Вам нужно указать 'key' или использовать' array_push() ' – Mouser