我想在PHP中处理一个数组来生成一个新的数组。PHP数组循环与子循环
这种情况是我有一个销售请求数组,并希望从中产生票证请求。
我遇到的问题是,根据销售请求的类型,需要生成一个或多个票据。如果需要更多票证,唯一的区别是票证号码的后缀为-1或-2,并添加到常规票证号码中。
我能做的阵列上一个foreach然后IF/ELSE如果在销售类型,然后将所有新的数组键(这是除了票号都一样)
但因为我有很多销售要求/线路难以维护,我认为这对性能不利。
例 “半成品” 代码:
$ticket = array();
foreach ($input as $k=>$v)
{
$ticket[$k] ['exp_date'] = date('Y-m-d', strtotime('+1 year', strtotime($input[$k] ['sales_date'])));
$ticket[$k] ['ticket_number'] = input[$k] ['ticketnumber']; // if 1 day, ticket number, if 2 days ticket number + '-2' If multiple tickets are used, the first ticket should also have '-1'
$ticket[$k] ['ticket_type'] = $input[$k] ['product'];
$ticket[$k] ['sales_date'] = $input[$k] ['sales_date'];
$ticket[$k] ['sales_ticket_number'] = $input[$k] ['ticket_number'] ;
$ticket[$k] ['days'] = '0'; // not yet in use
$ticket[$k] ['days_remaining'] = '0'; // not yes in use
}
// if
// if ($input[$k] ['product'] == '1-day') { $loop is null}
// elseif ($input[$k] ['product'] == '2-days') { $loop is 2}
// elseif ($input[$k] ['product'] == '3-days') { $loop is 3}
建议/提示是非常感谢!
/EDIT
流程逻辑没有代码和次优:
foreach ($input as $k=>$v)
{
if ($input[$k] ['product'] == '1-day')
{
create new lines in new array
}
else if ($input[$k] ['product'] == '2-days')
{
loop 2 times
create same entries, but ticket number = ticketnumber-1 and second loop ticketnumber-2
}
请加上'$ input'阵列的样品。 – RiggsFolly 2014-10-08 14:18:07