数组中的 Foreach 循环

问题描述 投票:0回答:2

我正在使用 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 arrays
2个回答
1
投票

我猜你正在寻找这个:

<?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);

0
投票

使用

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);
© www.soinside.com 2019 - 2024. All rights reserved.