各値の配列を持つ配列があります。これらのネストされた配列のそれぞれ (または専門用語が何であれ) をループするにはどうすればよいでしょうか。
これは構造です (注文ごとに複数の order_items が存在する可能性があります)
Array ( [0] =>
Array (
[order_item] => Array (
[id] => 1
[order_id] => 1
[userid] => 1
[item_number] => 3
[itemName] => Item A
[price] => 1.99
[quantity] => 1
[total] => 1.99
[item_status] => Not Filled
[created] => 2013-06-13 07:42:00
[modified] => 2013-06-13 07:42:00
)
[order_item] => Array (
[id] => 2
[order_id] => 1
[userid] => 1
[item_number] => 4
[itemName] => Item B
[price] => 1.99
[quantity] => 1
[total] => 1.99
[item_status] => Not Filled
[created] => 2013-06-13 07:42:00
[modified] => 2013-06-13 07:42:00
)
[Order] => Array (
[id] => 1
[userid] => 4
[order_status] => Not Filled
[email] => test@gmail.com
[total] => 1.99
[fullName] => Test
[address] => Test
[city] => Test
[state] => IA
[zip] => 12345
[created] => 2013-06-13 07:42:00
[modified] => 2013-06-13 07:42:00
)
)
)
注文ごとに複数の order_items が存在する場合があります。これらをExcelスプレッドシートに入れているので、注文のタイトルを次のように追加したい
/* new order */
//this the headings for an order
id name date etc...
1 test 123
//this is for each of the items in the order
id item number quantity price etc..
1 345 2 1.99
1 456 1 1.00
/* new order */
//Another order so the headings must be added again
id name date etc...
2 test 345
//this is for each of the items in the orders
id item number quantity price etc..
2 345 1 1.00
注意すべきことの 1 つは、CakePHP 用の PHP Excel エクスポート プラグインを使用していることです。
$data = array(
//each of these arrays are rows to be inserted into excel
array('a', 'b', 'c'),
array(1, 2, 3),
array('you', 'and', 'me'),
);
挿入されるデータのこの配列が $order_values であり、それをプッシュする配列が $data であると仮定します
$data = array();
foreach($order_values as $order){
//Order headings go here
array_push($data, array('Order ID', 'Order total', etc...))
//order data here. There is always only 1 line of order data per order
array_push($data, $order[Order]['id'], order[Order]['item_number']..);
//order items headings go here
array_push($data, array('Item number', 'Item Price', etc..));
foreach(){
array_push($data, /*now add the order items for the specific order*/)
}
}
どうすればこれを達成できますか?