php – 如何在子数组中搜索值并了解该子数组的键索引
发布时间:2020-12-13 17:31:00 所属栏目:PHP教程 来源:网络整理
导读:我有一个这种结构的数组: $months = array( MM = array( 'start' = DD,'end' = DD,'type' = (string),'amount'= (float),),); MM是一个月(01-12,字符串),DD是一个月中的一天(01-31,字符串). 并非所有月份都在阵列中.对于每个月,存在可变数量的子阵列,每个子
我有一个这种结构的数组:
$months = array( MM => array( 'start' => DD,'end' => DD,'type' => (string),'amount'=> (float),),); MM是一个月(01-12,字符串),DD是一个月中的一天(01-31,字符串). 我需要在每个月内循环几个月和几天时使用此数组.在循环每月的每一天时,我需要检查特定日期是否在“开始”或“结束”中匹配.如果匹配为真,我还需要检索相邻的值. 在这样做时,我遇到了一个问题:如何知道子阵列的关键索引?例如,我如何知道匹配是否开启 $months['09'][3]['start'] == $current_day_in_loop; 更确切地说: $months['09'][6]['start'] == $current_day_in_loop; 还是另一把钥匙? 由于我不知道每个月有多少范围,因此索引键是可变的,或者可能根本没有.如何找到匹配值是否在键[3]或[6]上?一旦我知道了密钥,我就可以用它来查找同一子阵列中的相邻值. 解决方法
您可以执行过滤器以确定哪些天匹配:
$matches = array_filter($months['09'],function($item) use ($current_day_in_loop) { return $item['start'] == $current_day_in_loop; }); // if $matches is empty,there were no matches,etc. foreach ($matches as $index => $item) { // $months['09'][$index] is the item as well } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |