Php 将变量分组并循环遍历它们

Php 将变量分组并循环遍历它们,php,wordpress,Php,Wordpress,当我只有一个变量时,我使用compactarray函数创建了一个包含变量及其值的数组,并在其中循环,但现在我在一个“组”中有多个变量可以循环: $details_room_name_1 $details_room_photo_1 $details_room_capacity_seated_1 $details_room_name_2 $details_room_photo_2 $details_room_capacity_seated_2 $details_room_name_2 $deta

当我只有一个变量时,我使用
compact
array函数创建了一个包含变量及其值的数组,并在其中循环,但现在我在一个“组”中有多个变量可以循环:

$details_room_name_1
$details_room_photo_1
$details_room_capacity_seated_1

$details_room_name_2
$details_room_photo_2
$details_room_capacity_seated_2

$details_room_name_2
$details_room_photo_2
$details_room_capacity_seated_2
我想一次遍历每个变量的“组”(房间)

loop
  echo room name
  print_r room photo array
  echo capacity
对于这个任务来说,使用数组是更好(最好)的解决方案,但是如果数据结构必须像你写的那样(我不知道Wordpress),你可以像下面这样使用st

<?php

$details_room_name_1 = 'room 1';
$details_room_photo_1 = 'photo 1';
$details_room_capacity_seated_1 = 1;

$details_room_name_2 = 'room 2';
$details_room_photo_2 = 'photo 2';
$details_room_capacity_seated_2 = 5;

$details_room_name_3 = 'room 3';
$details_room_photo_3 = 'photo 3';
$details_room_capacity_seated_3 = 8;

for ($i = 1; $i <= 10; $i++) {
    if (!isset(${'details_room_name_' . $i})) continue;

    echo 'room name: ' . ${'details_room_name_' . $i} . '<br>';
    echo 'room photo: ' . ${'details_room_photo_' . $i} . '<br>';
    echo 'room capacity: ' . ${'details_room_capacity_seated_' . $i} . '<br><br>';
}

/*
    returns

    room name: room 1
    room photo: photo 1
    room capacity: 1

    room name: room 2
    room photo: photo 2
    room capacity: 5

    room name: room 3
    room photo: photo 3
    room capacity: 8
*/

您标记了这个
数组
,但您没有使用它们。当然,你应该这样做,如果你这样做了,这将是微不足道的。@JohnConde希望我能。。这些是wordpress自定义字段(ACF),我无法控制它。为什么不将其标记为
wordpress
?这难道不相关吗?如果有帮助的话,他补充道。我刚才提到wordpress是为了说明我无法控制变量的创建。我感兴趣的是你如何无法控制变量的创建。你当然知道,这是你的网站,对吗?嗯……但是计算一个固定的整数
3
不是理想的,有一个
循环,你不知道你有多少物品/房间?它不是数组,所以不能使用
foreach
。如果(!empty(${'acomation\u room\u name.'$i}))
在循环中,如何
呢?我已经更新了答案。在循环中添加了更高的限制(
10
),并在变量不存在时使用
continue
。创建房间数组而不是像您这样的单个对象如何?当然wordpress并不是创造所有这些变量的人。。。