2011-09-07 2 views
5

natsort가 인덱스를 변경할 수있는 방법이 있습니까?PHP natsort는 인덱스를 유지합니다

e.e.

$array = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png'); 
natsort($array); 

Array 
(
    [0] => IMG0.png 
    [4] => img1.png 
    [3] => img2.png 
    [5] => IMG3.png 
    [2] => img10.png 
    [1] => img12.png 
) 

는하지만 원하는 :

$array = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png'); 
natsort($array); 

Array 
(
    [0] => IMG0.png 
    [1] => img1.png 
    [2] => img2.png 
    [3] => IMG3.png 
    [4] => img10.png 
    [5] => img12.png 
) 

답변

21

array_values 효과적으로 순차적 인 정수 키와 함께 전달 된 모든 배열을 인덱싱합니다. 그래서 당신은 할 필요가 :

natsort($array); 
$array = array_values($array); 
+0

Beautiful; 감사. 답변으로 표시됩니다. – jdborg

1

그냥 배열의 값을 얻을 수 array_values를 사용하여 키 - 값 협회 휴식 : 그래서

<?php 

$tarray = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png'); 
natsort($tarray); 
$tarray = array_values($tarray); 

?> 

:

<?php 

$tarray = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png'); 
print_r($tarray); 
natsort($tarray); 
$tarray = array_values($tarray); 
print_r($tarray); 

?> 

수율 :

Array 
(
    [0] => IMG0.png 
    [1] => img12.png 
    [2] => img10.png 
    [3] => img2.png 
    [4] => img1.png 
    [5] => IMG3.png 
) 
Array 
(
    [0] => IMG0.png 
    [1] => IMG3.png 
    [2] => img1.png 
    [3] => img2.png 
    [4] => img10.png 
    [5] => img12.png 
) 

comment on natsort을 참조하십시오.

관련 문제