您好我正在尝试使用以下函数根据当前日期搜索一小时:
$key = array_search($todayday, array_column($days, 'date', 'hours'));
其中$ todayday等于今天的日期。
数组$days
是:
Array
(
[0] => Array
(
[date] => 01
[hours] => 0
)
[1] => Array
(
[date] => 02
[hours] => 8
)
[2] => Array
(
[date] => 03
[hours] => 16
)
[3] => Array
(
[date] => 04
[hours] => 24
)
[4] => Array
(
[date] => 05
[hours] => 32
)
[5] => Array
(
[date] => 06
[hours] => 40
)
[6] => Array
(
[date] => 07
[hours] => 40
)
... etc....
虽然$ todaydate等于1,2,3,4,5但它的工作原理。但是对于6和7并没有返回任何东西。欢迎任何帮助解决此问题。谢谢
我怀疑,因为date = 6和7具有相同的小时值,这就是为什么它不返回任何东西,但问题是如何实际返回它。
答案 0 :(得分:2)
您的假设是正确的,您不能有重复的密钥。使用搜索中的密钥,然后访问hours
:
$key = array_search($todayday, array_column($days, 'date'));
$hours = $days[$key]['hours'];
或更短:
$hours = $days[array_search($todayday, array_column($days, 'date'))]['hours'];
如果索引不是基于0和顺序的,请使用array_values()
重新索引:
$days = array_values($days);
$key = array_search($todayday, array_column($days, 'date'));
$hours = $days[$key]['hours'];