itsource

다차원 배열의 모든 하위 배열 요소를 다시 인덱싱하려면 어떻게 해야 합니까?

mycopycode 2022. 9. 26. 22:03
반응형

다차원 배열의 모든 하위 배열 요소를 다시 인덱싱하려면 어떻게 해야 합니까?

문제는 어레이의 키를 리셋하는 방법입니다.예를 들어 다음과 같습니다.

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
    ) 
)

어레이내의 모든 어레이의 키를 리셋 하려면 , 다음의 순서에 따릅니다.

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

1차 레벨의 어레이 키를 리셋 하는 경우, 를 사용하지 않고 사용합니다.

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

$array = array_values($array);

이 기능을 통해 어레이를 리셋할 수 있습니다.

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

사용하다array_values키를 리셋하다

foreach($input as &$val) {
   $val = array_values($val);
}

http://php.net/array_values

여기서 간단한 것과 비교하여 제공되는 감쇠 방식의 차이를 볼 수 있습니다.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_values기능:

$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
                )
        )
)
$result = ['5' => 'cherry', '7' => 'apple'];
array_multisort($result, SORT_ASC);
print_r($result);

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

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

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

이를 위한 PHP 네이티브 함수가 존재합니다.http://php.net/manual/en/function.reset.php 를 참조해 주세요.

간단하게 다음 작업을 수행합니다.mixed reset ( array &$array )

언급URL : https://stackoverflow.com/questions/10492839/how-to-re-index-all-subarray-elements-of-a-multidimensional-array

반응형