在白天获取数组的一个特定部分
问题描述:
我有一个Youtube视频数组,并且我想要一个特定的白天。在白天获取数组的一个特定部分
Array
(
[10] => Array
(
[video_id] => 2
[show_date] => 2014-11-01
[show_time] => 14:40:00
[video_duration] => 5470
[video_youtube_id] => MTLObnglz_U
[video_title] => Out Of Bounds (OV)
[source] => channel: netzkino
)
[11] => Array
(
[video_id] => 155
[show_date] => 2014-11-01
[show_time] => 21:10:00
[video_duration] => 9392
[video_youtube_id] => OO-e8_-bMv8
[video_title] => Foo Fighters Live at Lollapalooza Brazil 2012 Full Concert HD 720p
[source] =>
)
[14] => Array
(
[video_id] => 3
[show_date] => 2014-11-01
[show_time] => 23:59:00
[video_duration] => 5520
[video_youtube_id] => cf7Eu9WJ_ek
[video_title] => City of Sex (Komödie mit Nicole Kidman)
[source] =>
)
)
所以当它与 “2014年11月1日21时10分00秒” 和(+ VIDEO_DURATION) “2014年11月1日23点46分31秒” 我想要得到的“Foo Fighters”:
[11] => Array
(
[video_id] => 155
[show_date] => 2014-11-01
[show_time] => 21:10:00
[video_duration] => 9392
[video_youtube_id] => OO-e8_-bMv8
[video_title] => Foo Fighters Live at Lollapalooza Brazil 2012 Full Concert HD 720p
[source] =>
)
答
最简单的方法是在数组上使用foreach()并检查每条记录。这样的事情:
$array = array(...); // Your array
$newArray = array();
$currentTime = time();
foreach ($array as $key => $value) {
$fromTime = strtotime($value['show_date'] . ' ' . $value['show_time']);
$toTime = $fromTime + $value['video_duration'];
if ($fromTime <= $currentTime && $toTime >= $currentTime) {
$newArray[] = $value;
}
}
+0
嗨,谢谢你的伟大答案,它的作品完美.. :) 最后一个(愚蠢)的问题......是否有可能获得下一个视频(城市S **)吗?再次感谢你:) – 2014-11-02 07:46:20
+0
你可以在很多方面做到。在$ newArray [] = $ value后尝试;这个代码:$ next = next($ array); – MariuszT 2014-11-02 09:10:32
您是否尝试通过循环检查日期?显示你做了什么... http://*.com/help/how-to-ask – rjdown 2014-11-01 22:18:31
嗨,谢谢你的快速回答,但我真的是一个初学者(noob)...我没有想法我怎么能得到正确的结果...我如何循环这个数组来获得我的结果? 谢谢您花时间帮助我。 – 2014-11-01 22:44:25