我正在使用 fullcalendar (JSON),并希望在多维数组中使用
foreach
循环。我得到的是这个:
echo json_encode(array(
array(
'id' => 111,
'title' => $arr['new'][0] . ' new',
'start' => $arr['booking_date'][0],
'url' => "bookings/new/1",
'color' => '#F7F8E0',
'textColor' => 'black'
),
array(
'id' => 111,
'title' => $arr['completed'][0] . ' completed',
'start' => $arr['booking_date'][0],
'url' => "bookings/completed/1",
'color' => '#D8D8D8',
'textColor' => 'black'
),
array(
'id' => 111,
'title' => $arr['accepted'][0] . ' accepted',
'start' => $arr['booking_date'][0],
'url' => "bookings/accepted/1",
'color' => '#E0ECF8',
'textColor' => 'black'
),
));
现在我必须手动输入每个数组,但是如何使用 foreach 来为我做到这一点?
我尝试过类似的方法,但没有成功。 回显 json_encode(数组(
foreach($arr as $row) {
array(
'id' => 111,
'title' => $arr['new'][0] . ' new',
'start' => $arr['booking_date'][0],
'url' => "bookings/new/1",
'color' => '#F7F8E0',
'textColor' => 'black'
),
}
我猜你正在寻找这个:
<?php
$array = array();
$arr = array(
array(
'new' => array("Title 1"),
'booking_date' => array("Booking date 1")
),
array(
'new' => array("Title 2"),
'booking_date' => array("Booking date 2")
)
);
foreach($arr as $row) {
array_push($array, array(
'id' => 111,
'title' => $row['new'][0] . ' new',
'start' => $row['booking_date'][0],
'url' => "bookings/new/1",
'color' => '#F7F8E0',
'textColor' => 'black'
));
}
echo json_encode($array);
使用
array_map()
作为函数式迭代器。 演示
echo json_encode(
array_map(
fn($row) => [
'id' => 111,
'title' => $row['new'][0] . ' new',
'start' => $row['booking_date'][0],
'url' => 'bookings/new/1',
'color' => '#F7F8E0',
'textColor' => 'black'
],
$array
),
JSON_PRETTY_PRINT
);
或者 foreach 循环中的数组解构语法。 演示
$result = [];
foreach ($array as ['new' => [$t], 'booking_date' => [$b]]) {
$result[] = [
'id' => 111,
'title' => $t . ' new',
'start' => $b,
'url' => 'bookings/new/1',
'color' => '#F7F8E0',
'textColor' => 'black'
];
}
echo json_encode($result, JSON_PRETTY_PRINT);