2013-04-19 3 views
0

이 같은 배열을했습니다에 값 :배열은 키 숫자 순서

8:16, 9:8, 10:11, 11:5, 12:5, 13:13, 14:42 

난이 원하는 : PHP에서

0:16, 1:8, 2:11 .... 

.

나는 나 자신의 기능을 할 수 있음을 알고있다. 그러나 나는 그것이 하나에 건설해야한다고 생각

나는 시도했다 :. array_values ​​

+0

[natsort] (http://php.net/natsort)를 사용해 보셨습니까? – pmayer

+0

array_values ​​()가 동료 인 –

+0

[작동해야 함] (http://codepad.viper-7.com/Ycvkqk)을 사용해야합니다. – Antony

답변

0

당신은 natsort()

을 사용할 수 있습니다

Documentation

+0

-1 무엇을 위해 ...? –

+0

은 질문에 답을하지 않습니다. 배열을 정렬하라는 요청을하지 않고 있습니다 (제목이 잘못 되었음에도 불구하고). 기존 값이 숫자/인덱스가 아닌지를 묻습니다. – Emissary

1

제발 그게 당신의 정확한 요구 사항을 생각해보십시오.

$arr = array('8:16', '9:8','10:11'); 

$i=0; 
foreach($arr as $val){ 

    $arr1 = explode(':',$val); 
    $arr2[] = $i.":".$arr1[1]; 
    $i++; 
} 
print_r($arr2); 
+0

좋은 지적으로, 나는 모든 사람들이'array (1,2)'에 대해'0 : 1, 1 : 2'가 의사라고 가정했다. – Emissary

0

사용

array_values($yourArray); 

나는 그것이 제대로 작동한다고 생각합니다.

0

나는 @Praveenkalal 당신이 무엇을 의미하는지 sussed 생각하지만, 난 그냥 또 다른 추가 할 것입니다 : 당신 배열이 이미 켜져있는 경우 우리가 가정 한 것처럼 제로 인덱스, 또는

$i = 0; 
array_walk($array, function(&$v) use(&$i) { 
    $v = preg_replace('/\d+:(\d+)/', ($i++).':$1', $v); 
}); 

run code

을 이 작동합니다 :

foreach($array as $key => &$val) 
    $val = preg_replace('/\d+:(\d+)/', $key.':$1', $val); 

run code


배열 ... 재미 재미 재미

그냥 명확하게 - 어떤 내장 함수가 없습니다 무슨 일을하는 것은 너무 구체적이기 때문에 - 배열 값이 중요한 경우 : 값 쌍은 일반적으로 당신은 매핑 한 것 그것들을 배열로 가져 가면 - 우리 모두는 array_values으로 충분하다고 생각하는 것입니다. 데이터가 같은 형식으로 예를 들어

인 경우 :

$array = array(
    8 => 16, 
    9 => 8, 
    10 => 11, 
... 
); 

당신이 사용 가능한 PHP의 내부 기능의 전체 범위를 가질 것입니다.