首页 > 解决方案 > 如何根据数量扩展数组

问题描述

我有一个存储数量的数组。我想将其转换为单独的数组,如下所述

我试过的

function expandArray($TICKETTYPE_TEMPARRAY, $readQuantity){
    for($i=1; $i<=$readQuantity; $i++){
        $TICKETTYPE[] = $TICKETTYPE_TEMPARRAY;
    }
}


foreach($TICKETTYPE_TEMPARRAY as $key => $value){
  $readQuantity = $value["QUANTITY"];
  expandArray($TICKETTYPE_TEMPARRAY, $readQuantity);
}

我的阵列

$myarray = array(
  "TICKETPRICE" => "6.0000",
  "QUANTITY" => "2",
  "COUNTRYID" => "15"
)

预期输出:

[{TICKETPRICE:6.000, QUANTITY:2, COUNTRYID=15},
{TICKETPRICE:6.000, QUANTITY:2, COUNTRYID=15}]

标签: php

解决方案


我想你想要这样的东西:

$myarray = array(array(
  "TICKETPRICE" => "6.0000",
  "QUANTITY" => "2",
  "COUNTRYID" => "15"
),
array(
  "TICKETPRICE" => "4.0000",
  "QUANTITY" => "3",
  "COUNTRYID" => "9"
));

$output = array();
foreach ($myarray as $array) {
    $output[] = array_fill(0, $array['QUANTITY'], $array);
}
echo json_encode($output);

输出:

[[{"TICKETPRICE":"6.0000","QUANTITY":"2","COUNTRYID":"15"},
  {"TICKETPRICE":"6.0000","QUANTITY":"2","COUNTRYID":"15"}
 ],
 [{"TICKETPRICE":"4.0000","QUANTITY":"3","COUNTRYID":"9"},
  {"TICKETPRICE":"4.0000","QUANTITY":"3","COUNTRYID":"9"},
  {"TICKETPRICE":"4.0000","QUANTITY":"3","COUNTRYID":"9"}
]]

或者,如果您想要一个完全平坦的数组:

$output = array();
foreach ($myarray as $array) {
    $output = array_merge($output, array_fill(0, $array['QUANTITY'], $array));
}
echo json_encode($output);

输出:

[{"TICKETPRICE":"6.0000","QUANTITY":"2","COUNTRYID":"15"},
 {"TICKETPRICE":"6.0000","QUANTITY":"2","COUNTRYID":"15"}
 {"TICKETPRICE":"4.0000","QUANTITY":"3","COUNTRYID":"9"},
 {"TICKETPRICE":"4.0000","QUANTITY":"3","COUNTRYID":"9"},
 {"TICKETPRICE":"4.0000","QUANTITY":"3","COUNTRYID":"9"}
]

3v4l.org 上的演示


推荐阅读