无法根据php中的日期时间值转换数组
我有一个名为$itemIds的数组,它由以下数据组成。键是items id,值是可以转换为可读日期的日期时间。我对php完全陌生,一些例子或提示会很棒!我很想听到你的消息无法根据php中的日期时间值转换数组,php,arrays,Php,Arrays,我有一个名为$itemIds的数组,它由以下数据组成。键是items id,值是可以转换为可读日期的日期时间。我对php完全陌生,一些例子或提示会很棒!我很想听到你的消息 Array ( [10477] => 1508898726 [10549] => 1508898744 [10891] => 1508898752 ) 如果我使用此代码,我将从打印中获得以下数据 if (isset($itemIds)) { $time = array();
Array
(
[10477] => 1508898726
[10549] => 1508898744
[10891] => 1508898752
)
如果我使用此代码,我将从打印中获得以下数据
if (isset($itemIds)) {
$time = array();
foreach ($itemIds as $key => $val) {
print_r($key.'=>'.date('m/d/Y H:i:s', $val));
}
}
问题从这里开始。我想根据日期和时间对$itemsid进行排序和描述
10477 => 10/25/2017 11:32:06
10549 => 10/25/2017 11:32:24
10891 => 10/25/2017 11:32:32
我想对数据进行排序,然后使用array_keys$shopIds将其更改为以下数据
Array
(
[0] => 10477
[1] => 10549
[2] => 10891
)
我认为更简单的方法是对数据进行排序,然后将其翻转,这样键就是值。如果你看你的数据,你最初是在处理我所看到的实际时间戳。使用它们,不要将它们更改为字符串。我这样说是因为你只是在无缘无故地让自己做额外的工作,并引入了一层不需要的复杂性。相反,我将执行以下操作:
$array = [
10477 => 1508898726,
10549 => 1508898744,
10891 => 1508898752,
];
arsort($array);
$sorted_array = array_values(array_flip($array));
这很容易阅读,不涉及额外的功能。留给您的结果是:
Array
(
[0] => 10477
[1] => 10549
[2] => 10891
)
一点解释:
我根据您要排序的方向使用arsort或asort,以便根据数组中的值进行排序
然后我在数组上使用array_flip来交换键和值
最后,我使用array_键重置数组中的索引并保持其排序
希望这有帮助 这是最有用的解决方案!