PHP에서 배열 요소의 키를 재설정 하시겠습니까?


124

문제는 예를 들어 배열의 경우 키를 재설정하는 방법입니다.

Array ( 
    [1_Name] => Array ( 
        [1] => leo 
        [4] => NULL 
    ) 
    [1_Phone] => Array ( 
        [1] => 12345 
        [4] => 434324
    )  
)

다음으로 재설정 :

Array ( 
    [1_Name] => Array ( 
        [0] => leo 
        [1] => NULL 
    ) 
    [1_Phone] => Array ( 
        [0] => 12345 
        [1] => 434324
    ) 
)

이 답변을 확인하십시오 : stackoverflow.com/questions/5943149/…
Web_Developer

답변:


294

어레이에있는 모든 어레이의 키를 재설정하려면 :

$arr = array_map('array_values', $arr);

경우에 당신은 단지 첫 번째 레벨 배열 키 사용을 재설정 할 array_values()않고 array_map.


9
어떤 이유로 내 배열의 키를 재설정하지 않았고 array_values기능 만 사용해야했습니다 .
SSH This

1
@SSH 여기에서 호출 한대로 배열 배열 에서 사용 했습니까 ?
deceze

1
문제가 아니 었습니다. "배열 요소의 키를 재설정"해야한다고 생각했습니다. 그렇지 않습니다.
SSH This

3
array_map을 사용할 필요가 없습니다 : $ ret = array_values ​​($ ret); 숫자 키를 재설정 충분하다
마렉 레 완도 우 스키

2
값을 재설정하기 위해 array_values를 사용하는 방법이 문서화되어 있는지는 모르겠지만 그래야합니다. 라인의 수에 대한이 정말 도움이 컷 다운 : 기록했다 I
carbontwelve

192
$array[9] = 'Apple';
$array[12] = 'Orange';
$array[5] = 'Peach';

$array = array_values($array);

이 기능을 통해 어레이를 재설정 할 수 있습니다.

$array[0] = 'Apple';
$array[1] = 'Orange';
$array[2] = 'Peach';

이 솔루션은 저에게
효과적이었습니다


8

여기 에서 간단한 접근 방식 과 비교하여 속임수가 제공되는 방식의 차이점을 확인할 수 있습니다 array_values.

어레이 :

$array['a'][0] = array('x' => 1, 'y' => 2, 'z' => 3);
$array['a'][5] = array('x' => 4, 'y' => 5, 'z' => 6);

$array['b'][1] = array('x' => 7, 'y' => 8, 'z' => 9);
$array['b'][7] = array('x' => 10, 'y' => 11, 'z' => 12);

에서 deceze방법, 여기 출력은 다음과 같습니다

$array = array_map('array_values', $array);
print_r($array);

/* Output */

Array
(
    [a] => Array
        (
            [0] => Array
                (
                    [x] => 1
                    [y] => 2
                    [z] => 3
                )
            [1] => Array
                (
                    [x] => 4
                    [y] => 5
                    [z] => 6
                )
        )
    [b] => Array
        (
            [0] => Array
                (
                    [x] => 7
                    [y] => 8
                    [z] => 9
                )

            [1] => Array
                (
                    [x] => 10
                    [y] => 11
                    [z] => 12
                )
        )
)

다음은 array_valuesfunction 만 사용하는 경우의 출력입니다 .

$array = array_values($array);
print_r($array);

/* Output */

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [x] => 1
                    [y] => 2
                    [z] => 3
                )
            [5] => Array
                (
                    [x] => 4
                    [y] => 5
                    [z] => 6
                )
        )
    [1] => Array
        (
            [1] => Array
                (
                    [x] => 7
                    [y] => 8
                    [z] => 9
                )
            [7] => Array
                (
                    [x] => 10
                    [y] => 11
                    [z] => 12
                )
        )
)

5
$result = ['5' => 'cherry', '7' => 'apple'];
array_multisort($result, SORT_ASC);
print_r($result);

배열 ([0] => 사과 [1] => 체리)

//...
array_multisort($result, SORT_DESC);
//...

배열 ([0] => 체리 [1] => 사과)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.