質問宜しくお願い致します。(m.ts10806さんは一切関わらないでください。)
下記配列から「実行時のunixtimeから、1週間以内のもの」だけを抽出したいとき、どういうコードになりますか?
※下記は3つですが、実際にはもっと多く不定数です。
※上にあるほど新しいunixtimeが入るという順番です。
array(3) { [0]=> array(2) { ["unix"]=> int(1565431921101) ["id"]=> int(100) } [1]=> array(2) { ["unix"]=> int(1565010547047) ["id"]=> int(99) } [2]=> array(2) { ["unix"]=> int(1561090457) ["id"]=> int(98) } }
たとえば上の配列ならば、[2]だけが現在から1週間以上前のものになりますので、「実行時のunixtimeから、1週間以内のもの」として取得したいのは下記になります。
array(2) { [0]=> array(2) { ["unix"]=> int(1565431921101) ["id"]=> int(100) } [1]=> array(2) { ["unix"]=> int(1565010547047) ["id"]=> int(99) } }
考えたのは下のarray_sliceというもので、その第二引数に「1週間以内のもの」という指定をしてみたいのですが…、どうもうまくいかないようで、どなたか教えていただけませんでしょうか。
// 現在のunistimeを取得 $now = ceil(microtime(true)*1000); // 1週間以内の時間を取得 $week = $now - ( 3600*24*7*1000 ); // 1週間以内のものを取得 $result = array_slice($ary , $now > $week["unix"] );