문제

조만간 해결해야 할 문제가 있습니다.시간이 있으면 스크립트 전체를 다시 작성할 수 있겠지만 프로그래머의 삶도 그런 거겠죠?어쨌든 저는 프로젝트를 맡았고 다음과 같은 다차원 혼합 연관/숫자 배열을 가지고 있습니다.

Array
(
    [item1] => Array
        (
            [dataset] => Array()
            [3] => Array()
            [7] => Array()
        )
    [item2] => Array
        (
            [dataset] => Array()
            [4] => Array()
            [19] => Array()
            [2] => Array()
        )
)

내가 해야 할 일은 데이터 세트 각각의 색인 itemX 인덱스는 다음과 같은 마지막 인덱스가 됩니다.

Array
(
    [item1] => Array
        (
            [3] => Array()
            [7] => Array()
            [dataset] => Array()
        )
    [item2] => Array
        (
            [4] => Array()
            [19] => Array()
            [2] => Array()
            [dataset] => Array()
        )
)

이를 실현하는 데 도움이 될 수 있는 몇 가지 사항은 제가 알다 데이터 세트 인덱스는 항상 첫 번째 인덱스가 됩니다. itemX index와 키는 항상 'dataset'이고 나머지는 모두 항상 숫자 인덱스입니다.어쨌든 PHP에서 이것을 할 수 있습니까?그것이 혼합 배열이라는 사실이 나를 던지고 있습니다.숫자 인덱스를 재설정하고 0에서 시작하도록 할 수 없습니다.순서가 바뀌었는지 여부는 중요하지 않으며 모두 '데이터 세트' 인덱스 앞에 온다면 됩니다.어쩌면 그것도 그런 날 중 하나일지도 몰라....:\ 어떤 제안이나 의견이라도 대단히 감사하겠습니다.

도움이 되었습니까?

해결책

다음과 같이 모든 요소를 ​​반복합니다.

foreach ($all_items as $key =>$items) {
   $dataset = $items['dataset'];
   unset($all_items[$key]['dataset']); // Removing it (from the top)
   $all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom)
}

'dataset' 요소의 설정을 해제하고 다시 추가하면 해당 요소가 하단에 추가됩니다.

foreach의 $items가 아니라 원래 배열을 직접 수정하는 것이 중요합니다. 왜냐하면 이러한 변경 사항은 원래 배열에 영향을 주지 않기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top