【问题标题】:PHP Sorting multidimensional array on mixed string and int valuePHP对混合字符串和int值的多维数组进行排序
【发布时间】:2016-07-01 12:15:53
【问题描述】:

我有一个多维数组,其中包含有关从 AWS S3 获取的图像的信息,但是当我获取它们时,它们完全按照字母顺序排序。

假设我有 22 张图片,它们的名称都是这样的:.35-aname-0.jpg,下一个是 .35-aname-1.jpg,以此类推,名称相同。但是,当我得到它们时,我会像这样得到它们:

  • .35-aname-0.jpg
  • .35-aname-1.jpg
  • .35-aname-10.jpg
  • .35-aname-11.jpg
  • .35-aname-2.jpg

我需要退回它们,以便它们按如下顺序排列:

  • .35-aname-0.jpg
  • .35-aname-0.jpg
  • .35-aname-1.jpg
  • .35-aname-2.jpg
  • .35-aname-10.jpg
  • .35-aname-11.jpg

我怎样才能使它不会像纯粹按字母顺序那样排序,而是使用数字规则?

我的数组包含较小的数组,每个数组都有文件名、图像链接和名称。

我已经尝试了多种内置排序方法,但我不确定我是否正确使用它们,或者如果没有,如何将它们与多维数组一起使用。 natcasesort 看起来最有希望,实际上看起来应该会产生正确的结果,但它什么也没做。

我真的希望你们有一个好主意:)

【问题讨论】:

标签: php sorting multidimensional-array


【解决方案1】:

你为什么不得到最后一个intexplode(.)然后explode(-)将所有ints添加到一个数组中,然后在添加字符串的其余部分之后对其进行排序;

ps : 你可以在 var $name 上循环
示例:

      $name= explode(".",".35-aname-10.jpg");

      $var=explode("-",$name[1]);

      $array[]=$var[2];

      then you sort the array

      loop and add ".35-aname-".$array[loopindex].".jpg";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多