Как разделить или извлечь значение подмассива из основного массива в PHP - PullRequest
0 голосов
/ 11 февраля 2020

Я хотел бы получить значения подмассива из main. Ниже приведен мой массив.

 [tour_avaibility] => Array
        (
            [tour_avaibility_location] => Array
                (
                    [Location_one] => Location_two
                    [Location_seven] => Location_nine
                )

            [tour_avaibility_date] => Array
                (
                    [02/11/2020] => 02/17/2020
                    [02/21/2020] => 02/26/2020
                )

        )

Я хочу 'tour_avaibility_location' & tour_avaibility_date значение только через один l oop. Я использовал следующий код, но он повторяет значение.

<?php
foreach ($tourAvaibilityDate['tour_avaibility'] as $key => $value) {?>
    <div class="other-tag justify-content-between">
            <?php
            foreach ( array_unique($tourAvaibilityLocation['tour_avaibility']['tour_avaibility_location'] ) as $k => $v) {?>    
                <div class="tag-name"><?php echo $k.$v; ?></div>
            <?php }?>

            <?php
            foreach ( array_unique($tourAvaibilityDate['tour_avaibility']['tour_avaibility_date'] ) as $k => $v) {?>    
            <div class="tag-price">25 Nov 2019 - 30 Nov 2019</div>
            <?php } ?>
        <div class="tag-remove text-light">
            <i class="fa fa-times"></i>
        </div>
    </div>
<?php } ?>

Я хочу поставить как ..

Location_one - Location_two  02/11/2020 - 02/17/2020
Location_seven - Location_nine  02/21/2020 - 02/26/2020

1 Ответ

2 голосов
/ 11 февраля 2020

Вам необходимо выделить ключи и значения каждого массива в $tourAvaibilityDate['tour_avaibility']; тогда вы можете перебирать их. Обратите внимание, что в этом коде предполагается, что даты совпадают с количеством мест:

$tours = $tourAvaibilityDate['tour_avaibility'];
$start_locations = array_keys($tours['tour_avaibility_location']);
$end_locations = array_values($tours['tour_avaibility_location']);
$start_dates = array_keys($tours['tour_avaibility_date']);
$end_dates = array_values($tours['tour_avaibility_date']);
$c = count($start_locations);
for ($i = 0; $i < $c; $i++) {
    echo $start_locations[$i] . ' - ' . $end_locations[$i] . "\n";
    echo $start_dates[$i] . ' - ' . $end_dates[$i] . "\n";
}

Вывод (для ваших примеров данных):

Location_one - Location_two
02/11/2020 - 02/17/2020
Location_seven - Location_nine
02/21/2020 - 02/26/2020

Демонстрация на 3v4l.org

...