Kart bilgileri vs. geliyor mu bilmiyorum, umarım sizin geliştirmeniz için bu örnek yeterli olacaktır.
<?php
// Gelen yapı
$orderData = json_decode(file_get_contents('test.json'));
$data = array();
foreach ($orderData->order as $order) {
$detail = $order->{'@attributes'};
$name = trim($detail->CustomerName);
$last_name = (strpos($name, ' ') === false) ? '' : preg_replace('#.*\s([\w-]*)$#', '$1', $name);
$first_name = trim( preg_replace('#'.preg_quote($last_name,'#').'#', '', $name ) );
$input = array(
'customer' => array(
'first_name' => $first_name,
'last_name' => $last_name
),
'order' => array(
'id' => $detail->Id,
'detail' => array()
),
'pay' => array(
'card_name' => NULL
)
);
foreach ($order->product as $product) {
$product = $product->{'@attributes'};
$input['order']['detail'][] = array(
'id' => $product->id,
'name' => $product->Name,
'price' => $product->Price
);
}
array_push($data, $input);
}
echo json_encode($data);
Hocam gerçekten teşekkür ederim ilgi alakanız için. Bir ricam olacak bu çıktıyı orders arrayına atıp 0. indis de 1. sipariş, 1. indis de 2. sipariş şekline çevirebilir miyiz. Önr:
orders [0] şeklinde veriyi çektiğimde sadece ilk siparişin customer, order ve pay bilgileri gelsin. Baştan örnek kodu ben eksik istemişim kusura bakmayın lütfen.
Edit: Zaten istediğim şekilde yapmışsınız hocam, kodu uygulayınca gördüm. Emeğiniz için teşekkür ederim.