Php 按其他数组对数组排序
我有:Php 按其他数组对数组排序,php,arrays,Php,Arrays,我有: $years = '2015,2017,2016'; $short = '21,1,7'; $long = '777-21/2015,777-1/2017,777-7/2016'; 我需要按年份重新排列它们,递减。因此,我得到: $years == '2017,2016,2015'; $short == '1,7,21'; $long == '777-1/2017,777-7/2016,777-21/2015'; 分解(“,”,$years),重新排列$y
$years = '2015,2017,2016';
$short = '21,1,7';
$long = '777-21/2015,777-1/2017,777-7/2016';
我需要按年份重新排列它们,递减。因此,我得到:
$years == '2017,2016,2015';
$short == '1,7,21';
$long == '777-1/2017,777-7/2016,777-21/2015';
分解(“,”,$years)
,重新排列$years
并将键用作模式可能是一个很好的解决方案,但我不知道如何执行。我不知道为什么要删除他的,但这与此类似:
$years = explode(',', $years);
$short = explode(',', $short);
$long = explode(',', $long);
array_multisort($years, SORT_DESC, $short, $long);
$years = implode(',', $years);
$short = implode(',', $short);
$long = implode(',', $long);
将字符串分解为数组explode()
- 排序
,将其他的排序相同$years
返回字符串内爆()
注意:你应该注意评论并发布一个更大的问题,以获得更好的策略。从一开始使用逗号分隔的值可能是错误的方法。hmmmm我在这里闻到了味道,如果我是正确的,请添加一个大目标:)猜猜@niceman说了什么,为什么不将日期存储在一个变量中?这样你就可以很容易地排序了…字符串是用户定义的输入值,php部分应该重新排列它们,这样在以后的处理中就不会出现问题。你有一个文本输入,一个用于日,一个用于月,一个用于年?如果是这样的话,为什么不为完整的日期输入一个呢?如果你不关心旧的浏览器,你可以使用
,而且你可以很好地使用,即使你关心一个文本输入比一个文本输入容易得多,你也可以用javascript或php将字符串解析成日期(你肯定会找到一个内置的)您可以验证格式,并告诉用户将其放入您选择的特定格式。谢谢,这正是我想要实现的。