Php 循环遍历数组数组并按id提取数据
我有一个带有id、日期、度假人数和地点的数组。我需要在单独的数组中按id提取id、日期、价格和位置,如下所示:Php 循环遍历数组数组并按id提取数据,php,Php,我有一个带有id、日期、度假人数和地点的数组。我需要在单独的数组中按id提取id、日期、价格和位置,如下所示: Array ( 0 => '6, 2020-01-01, Four people, United Kingdom, 1200.00', 1 => '2, 2012-04-12, Three people, Australia. 600.00', 2 => '6, 2018-08-06, Holiday of two, Canada, 2100
Array (
0 => '6, 2020-01-01, Four people, United Kingdom, 1200.00',
1 => '2, 2012-04-12, Three people, Australia. 600.00',
2 => '6, 2018-08-06, Holiday of two, Canada, 2100.00'
...
)
这是我想要的输出,每个id的数组
$perPersonId = [
[
[0]=>2020-01-01,
[1]=>6,
[2]=>1200.00,
],
[
[0]=>2015-12-31,
[1]=>6,
[2]=>2100.00,
]
.....
];
这就是我目前所拥有的
function x (array $holidays)
{
foreach($holidays as $holiday) {
$holidayPerPerson = array_filter (explode(',', $holiday), function ($h) use ($holiday) {
// not sure what to do here to group holidays per id
});
}
// return array of holidays per person id
}
1。您可以应用foreach()
并在其中使用explode()
function x (array $holidays)
{
foreach($holidays as &$holiday) { //passing by reference
$holiday= explode(', ',$holiday);
}
return $holidays;
}
输出:-
2.正如您所说,您希望按id进行分组,请执行以下操作:
function x (array $holidays)
{
$finalArray = [];
foreach($holidays as $holiday) {
$holidays= explode(', ',$holiday);
$finalArray[$holidays[0]] = (isset($finalArray[$holidays[0]])) ? array_merge($finalArray[$holidays[0]],$holidays) : $holidays;
}
return $finalArray;
}
print_r(x($holidays));
输出:-
1200.002100.00,
,它们来自您所需输出的位置?抱歉,忘记在数组中添加价格。