>  기사  >  백엔드 개발  >  알고리즘 - 배열의 중복 요소를 PHP의 새 배열로 병합하는 방법은 무엇입니까?

알고리즘 - 배열의 중복 요소를 PHP의 새 배열로 병합하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-12-01 00:56:201559검색

현재 배열이
array(
0=>array('key1'=>'value1' , 'key2'=>'value2'),
1=>array('key1'=>'value1' , 'key2'=>'value3'),
2=>array('key1'=> ' value2' , 'key2'=>'value4'),
...
999=>array('key1'=>'value2' , 'key2'=>'value5')
)
이 배열의 key1 값이 동일한 경우 key2 값을 새 배열로 병합하는 방법. 원본 배열을 다음 배열로 변환하는 메서드를 작성하세요:
array(
0=>array('value1'=>array('value2','value3')),
1 => 배열('값2'=>배열('값4','값5')),
...
)

답글 내용:

현재 배열이
array(
0=>array('key1'=>'value1' , 'key2'=>'value2'),
1=>array('key1'=>'value1' , 'key2'=>'value3'),
2=>array('key1'=> ' value2' , 'key2'=>'value4'),
...
999=>array('key1'=>'value2' , 'key2'=>'value5')
)
이 배열의 key1 값이 동일한 경우 key2 값을 새 배열로 병합하는 방법. 원본 배열을 다음 배열로 변환하는 메서드를 작성하세요:
array(
0=>array('value1'=>array('value2','value3')),
1 => 배열('값2'=>배열('값4','값5')),
...
)

질문 제목, key1의 반복 여부와 관계없이 독립적인가요? 방법은 다음과 같습니다

<code>$arr = array(
    0=>array('key1'=>'value1' , 'key2'=>'value2'),
    1=>array('key1'=>'value1' , 'key2'=>'value3'),
    2=>array('key1'=>'value2' , 'key2'=>'value4'),
    999=>array('key1'=>'value2' , 'key2'=>'value5')
);

$result = array();
foreach ($arr as $data) {
    isset($result[$data['key1']]) || $result[$data['key1']] = array();
    $result[$data['key1']][] = $data['key2'];
}
print_r($result);

//输出如下
Array
(
    [value1] => Array
        (
            [0] => value2
            [1] => value3
        )

    [value2] => Array
        (
            [0] => value4
            [1] => value5
        )
        
)</code>

배열 정리 형태를 바꾸면 훨씬 좋을 것 같아요
물론 바꿀 수 없으면 엄청 힘들겠죠
예를 들어 순회를 이용하면

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.