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将字符串解析成日期(你肯定会找到一个内置的)您可以验证格式,并告诉用户将其放入您选择的特定格式。谢谢,这正是我想要实现的。