2016-04-12 13 views
1

. Bu diziyi PHP kullanarak sıraya göre sıralayabilir miyim?Bir diziyi sıralamak için PHP, dizideki sıra değerlerini tanımlamaktan ziyade bellek dizelerini içerir

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

Teşekkür ederiz!

Güncellendi: PHP 5,3

+0

Kontrol dışarı http://php.net/manual/en/function.sort.php – Marcus

+1

dizideki tüm değerler daima GB olacak mı? Bu çözüm açısından açıkçası oldukça önemlidir. – Chris

+0

@chris evet, öyle. – ln9187

cevap

3

PHP < = v5.3

Kontrol dışarı natsort()

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

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

PHP> = v5.4 kullanılarak

Eminsort() ve SORT_NATURAL bayrağı ile olabilir.

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

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

Bunun PHP 5.3'te çalışması için alternatif bir yol var mı? 5.4 (evreleme) ile test edildi ve çalıştı. Ancak üretim sunucumuz hala 5.3 – ln9187

+0

Manual kullanıyor, 'sort()' işlevi PHP 4, PHP 5, PHP 7'yi kapsar. Üretim sunucunuzda test ettiniz mi? Hiçbir neden 5.3'te çalışmamalı. Başka bir notta, dev/prod sunucularınızın PHP'nin aynı sürümünü çalıştırması gerekir (MySQL, vb., Vs; x'in bir sürümünün test edilmesi ve x'in başka bir sürümüne yerleştirilmesi, kötü sonuçlara yol açabilir). – Marcus

+0

Bu, attığı şeydir: BİLDİRİM Tanımsız sabit SORT_NATURAL kullanımı - 5 numaralı satırda 'SORT_NATURAL' olarak varsayılmıştır 5.3 – ln9187

İlgili konular