2017-02-27 2 views
0

의 순서 보존 내가PHP : array_values ​​

키의 모든 숫자입니다
(
    1 => 'a', 
    2 => 'b', 
    0 => 'c' 
) 

같이 구성되어 연관 배열을 가지고있는 경우 array_values 항상 값이 새로운 배열에 시간순으로 발생하는 것을 보장합니다, 기반 이전 키 값 (예 : ['c', 'a', 'b']?

그렇지 않은 경우 어떻게해야합니까?

+0

숫자 키 포인트는, 아니 항상 – RomanPerekhrest

+0

@RomanPerekhrest을 연관되지. 이 경우 키는 순차적이지만 1, 3, 5 등의 키가 아닌 경우에는 어떻게됩니까? –

답변

3

아니요, array_values()은 어떤 식 으로든 값의 순서를 바꾸지 않습니다. 열쇠는 신경 쓰지 않습니다.

그것의 효과적인 구현은 기본적으로 이것이다 : 당신이 키를 사용하여 배열을 정렬하고자하는 경우, ksort()를 사용

function array_values_impl(array $array) 
{ 
    $newArray = []; 

    foreach ($array as $item) { 
     $newArray[] = $item; 
    } 

    return $newArray; 
} 

.

1

먼저 키를 사용하여 배열을 정렬하고 array_values ​​함수로 값을 가져 와서 수행 할 수 있습니다.

$array = array(
    1 => 'a', 
    2 => 'b', 
    0 => 'c' 
); 

ksort($array); 
print_r(array_values($array)); 

예를

를 들어

는 출력 : 인덱스 배열에

Array 
(
    [0] => c 
    [1] => a 
    [2] => b 
)