私はMultilevel Array
(以下の配列構造の図を参照) を持っており、上位の .sub-nested 配列を取得する必要がありますdate value
。
サブネストされた配列を並べ替えdate value
たり、最高のものを取得したりする簡単な方法があるかどうか疑問に思っていましたdate value
か?
配列マップ
そのためには、usort()関数が役立ちます。
usort($rgData, function($rgX, $rgY)
{
$x = strtotime($rgX['date']);
$y = strtotime($rgY['date']);
return $x<$y?-1:$x!=$y;
});
//var_dump($rgData);
最高値を取得したい場合は、['date']
上記の並べ替えを行った後の最後の要素のキーになります。
編集:フォーマットが常に画像とまったく同じであることが確実な場合は、直接文字列比較を使用できますstrcmp
(おそらくより高速です)
使用方法usort()
:
$input = array(
array('date' => '2013-09-11 13:08:40 +0000'),
array('date' => '2013-09-11 13:09:17 +0000'));
usort($input, function(array $a, array $b) {
$aTimestamp = strtotime($a['date']);
$bTimestamp = strtotime($b['date']);
if($aTimestamp == $bTimestamp) return 0;
return $aTimestamp < $bTimestamp;
});
print_r($input); //$input[0] has the latest date value