2016-07-01 6 views
-1

AWS S3から取得した画像に関する情報を保持する多次元配列がありますが、取得するとアルファベット順にソートされます。PHP混合文字列とint値の多次元配列の並べ替え

私は22の画像を持っています。これらはすべて.35-aname-0.jpgのように名前が付けられ、次は同じ名前の.35-aname-1.jpgなどとなります。

  • 0.35-ANAME-0.jpg
  • 0.35-ANAME-1.JPG
  • 0.35-ANAME-10.jpg
  • :私はそれらを取得するときしかし、私はこのようにそれらを取得します
  • 0.35-ANAME-11.jpg
  • 0.35-ANAME-2.JPG

私は、彼らがこのような順序になるようにそれらを返す必要があります。

  • 0.35 - ANAME-0.jpg
  • 0.35 - ANAME-0.jpg
  • 0.35 - ANAME-1.JPG
  • 0.35 - ANAME-2.JPG
  • .35- ANAME-10.jpg
  • 0.35-ANAME-11.jpg

は、どのように私はそれが純粋にアルファベット順に希望のように、それはそれをソートしないようにそれを作るが、数値的なルールを使用していますができますか?

私の配列には、ファイル名、イメージへのリンク、および名前を持つ、より小さな配列が含まれています。

私は複数の組み込みソート方法を試しましたが、正しく使用しているかどうか、またそうでなければ多次元配列で使用する方法がわかりません。最も有望に見え、実際には正しい結果を生むように見えるものはnatcasesortでしたが、これは何もしませんでした。

私は本当にあなたたちは良いアイデアを持っていることを願っています:)

+0

可能な複製(http://stackoverflow.com/questions/28326049/natural-ソート・アソシエート・アレイ) – ShiraNai7

答えて

0

あなたは最後のintが爆発取得しない理由を、次に爆発(。)( - )アレイ内のすべてのint型を追加し、それを並べ替えますその後、残りの文字列を追加します。

PSます。var $名
exempleにすることができますループ:[?ナチュラルソート連想配列]の

 $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"; 
関連する問題