2016-04-12 8 views
1

配列内の順序値を定義するのではなく、 PHPを使用してこの配列を昇順に並べ替えることはできますか?配列をソートするPHPにメモリ文字列が含まれています

<?php 
$memories = array('32GB', '64GB', '128GB', '16GB'); 
?> 

ありがとう!

更新:PHP 5.3

+0

http://php.net/manual/en/function.sort.php – Marcus

+1

を確認し、アレイ内のすべての値は、常にGBになりますか?それは明らかにソリューションにとって非常に重要です。 – Chris

+0

@chrisはい、そうです。 – ln9187

答えて

3

PHP < = V5.3

チェックアウトnatsort()

$memories = array('32GB', '64GB', '128GB', '16GB'); 
natsort($memories); 

print_r($memories); // Array ([3] => 16GB [0] => 32GB [1] => 64GB [2] => 128GB) 

PHP> = V5.4を使用して

確かにsort()SORT_NATURALフラグで行うことができます。

<?php 
$memories = array('32GB', '64GB', '128GB', '16GB'); 
sort($memories, SORT_NATURAL); 

print_r($memories); // [0] => '16GB', [1] => '32GB', [2] => '64GB', [3] => '128GB' 
+0

これをPHP 5.3で動作させる別の方法はありますか? 5.4(ステージング)でテストされ、うまくいきました。しかし、我々のプロダクションサーバはまだ5.3 – ln9187

+0

を使用しています。 'sort()'関数は "PHP 4、PHP 5、PHP 7"を扱います。プロダクションサーバーでテストしましたか? 5.3で動かない理由はありません。別の注意点として、あなたのdev/prodサーバは同じバージョンのPHP(MySQLなど)を実行していなければなりません。xのあるバージョンでテストし、別のバージョンのxにデプロイすると致命的な結果になる可能性があります。 – Marcus

+0

これはそれが捨てたものです: 'NO未定義の定数の使用SORT_NATURAL - 5.3の' SORT_NATURAL 'を行番号4で仮定しました – ln9187

関連する問題