You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP三维数组遍历求助:根据room_type_id匹配返回check_in_times

处理PHP三维数组的遍历需求

嘿,我来帮你搞定这个三维数组的遍历问题!咱们先捋清楚核心逻辑:遍历给定的三维数组,当某个父级元素的room_type_ids数组包含特定值时,返回该父级元素里check_in_times数组的对应值(看你示例里都是取第一个元素,咱们就按这个逻辑来实现)。

核心思路

  1. 遍历外层数组的每一个父级元素
  2. 对每个父级元素,检查它的room_type_ids子数组是否包含你要找的目标ID
  3. 如果找到匹配项,就返回对应的check_in_times数组的第一个元素;如果遍历完都没找到,返回默认值(比如null)

实现代码

function getCheckInTimeByRoomTypeId($array, $targetRoomTypeId) {
    // 遍历外层数组的每个父级元素
    foreach ($array as $item) {
        // 用in_array检查当前元素的room_type_ids是否包含目标值
        if (in_array($targetRoomTypeId, $item['room_type_ids'])) {
            // 返回对应check_in_times的第一个元素(符合你的示例需求)
            return $item['check_in_times'][0];
        }
    }
    // 没找到匹配项时返回默认值,你可以改成0或者其他提示内容
    return null;
}

// 你的原始数组(我帮你格式化了一下,看起来更清晰)
$myarray = [
    [
        'check_in_times' => [1],
        'room_type_ids' => [261, 281, 283, 292, 296, 365, 381, 387, 389, 730],
        'season_ids' => [0]
    ],
    [
        'check_in_times' => [2],
        'room_type_ids' => [36, 38, 300, 318, 336, 889, 897, 728, 745, 747],
        'season_ids' => [0]
    ]
];

// 测试你要的场景
echo getCheckInTimeByRoomTypeId($myarray, 261); // 输出:1
echo getCheckInTimeByRoomTypeId($myarray, 36);  // 输出:2

代码解释

  • getCheckInTimeByRoomTypeId函数接收两个参数:你的三维数组,以及要查找的目标room_type_id
  • foreach循环遍历外层的每个父级元素,逐个检查匹配情况
  • in_array()是PHP内置函数,专门用来快速检查某个值是否存在于数组中
  • 一旦找到匹配的元素,立刻返回对应的check_in_times[0],这样不用遍历完所有元素,效率更高
  • 如果遍历结束都没找到匹配项,函数返回null,你可以根据自己的需求改成其他默认值(比如0或者字符串'未找到匹配项')

扩展场景:如果有多个匹配项怎么办?

要是你的数组里有多个父级元素都包含同一个room_type_id,想要收集所有对应的check_in_times,可以用下面这个版本的函数:

function getAllCheckInTimesByRoomTypeId($array, $targetRoomTypeId) {
    $results = [];
    foreach ($array as $item) {
        if (in_array($targetRoomTypeId, $item['room_type_ids'])) {
            $results[] = $item['check_in_times'][0];
        }
    }
    return $results;
}

// 调用示例(假设你后来加了包含261的元素)
print_r(getAllCheckInTimesByRoomTypeId($myarray, 261)); // 输出:Array ( [0] => 1 )

内容的提问来源于stack exchange,提问作者Costa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 03:43:17