2016-04-14 17 views
0

Bir diziyi nasıl sıralarım, değerler taşınmalı ve dizin hala sabit olmalıdır. Bu kodu aşağıda yazdım, ancak verdiği cevap ideal değil.Dizini, dizinin taşınmaması için mi sıralama?

$array = array(6,2,22,15,33,40,30,70,65); 
asort($array,); 
print_r($array); 

Şimdi bu değerleri sıralar, ancak dizin değeri ile birlikte hareket eder. Cevabı aldım;

Array ([1] => 2 [0] => 6 [3] => 15 [2] => 22 [6] => 30 [4] => 33 [5] => 40 [8] => 65 [7] => 70) 

Aşağıdakileri göstermek isterim;

Array ([0] => 2 [1] => 6 [2] => 15, etc. 

Teşekkür ederiz!

+1

*** a ** ssociative sort() * – Rizier123

+5

sort() yerine asort() kullanın –

+0

Bu bir paradoks ... dizinlerin eklenmesini istiyorsunuz, ancak yapıştırılmaması gereken ... @MarkBaker diyor ki : sort() kullan –

cevap

0

kullanımlar array_combine() *

Bu da bir anahtar, ve yeni bir dizi için değerler kümesinden ikinci bir ilk kullanılarak birine iki dizi birleştirir.

Temel olarak yalnızca orijinal anahtarları ve sıralanan değerleri almanız ve ardından array_combine() adresine beslemeniz gerekir.

$a = [ 
    'a' => 'orange', 
    'b' => 'apple', 
    'o' => 'banana', 
]; 

$tmp = $a; 
sort($tmp); 
$result = array_combine(array_keys($a), $tmp); 

var_dump($a, $result); 

Sen here bunu deneyebilirsiniz.

Şerefe.


*: PHP 5 edinilebilir.