私はこのような異なるインデックス位置を持つ配列を持っています。並べ替え配列をdatetimeキーで関連付けます
Array
(
[0] => Array
(
[datetime] => 27/01/2017 12:18
[location] => Raunheim (DE)
[date] => 27/01/2017
[time] => 12:18
[status] => Erfolgreich zugestellt.
[status_1] => (Retoure an Versender)
)
[2] => Array
(
[datetime] => 11/01/2017 16:10
[location] => Vlotho (DE)
[date] => 11/01/2017
[time] => 16:10
[status] => Ihr Paket konnte nicht wie geplant zugestellt werden und ist wieder im Paketzustellzentrum.
)
[2] => Array
(
[datetime] => 25/01/2017 11:24
[status] => Erfolgreich zugestellt.
[status_id] =>
[date] => 25/01/2017
[location] => Altentreptow (DE)
[time] => 11:24
)
)
datetimeキーを使用してこの配列を並べ替える必要があります。私は解決策を試しました
usort($second_tracking_array, 'date_compare');
function date_compare($a, $b) {
$date1 = $a['datetime'];
$date2 = $b['datetime'];
$t1 = strtotime($date1);
$t2 = strtotime($date2);
echo $t1 . " : " . $t2 . "</br>";
return $t2 - $t1;
}
しかし、配列はソートされていません。デバッグでは、関数が動作し、すべてのインデックス位置が正しい場合にのみ配列をソートすることがわかりました。しかし、私の場合、私の配列インデックスの位置のいくつかは異なっています。
あなたはあなたの例では(2倍キー2)のように、同じキー2回を持つことはできません。 '$ array = array_values($ array);' – pixelarbeit
で配列キーを修正できますが、配列の各インデックスに含まれるdatetimeキーは1つだけです。問題は、私はdate_compare関数では、私は頻繁に$ t2を空に直面している。両方の配列が同じ構造化配列を持つ場合にのみ、$ t1と$ t2をタイムスタンプで取得します –