PHP 프로그래밍 과정에서 배열의 동일한 키를 처리해야 하는 경우가 종종 있습니다. 배열에 동일한 키를 가진 요소가 있는 경우 이를 하나로 병합하는 방법은 무엇입니까? 아래에서는 이 문제를 해결하는 데 도움이 되도록 PHP에서 배열을 처리하는 몇 가지 방법을 간략하게 소개하겠습니다.
1. array_merge_recursive() 함수를 사용하세요.
PHP에 내장된 array_merge_recursive() 함수는 두 개 이상의 배열을 하나의 배열로 병합할 수 있습니다. 배열 중 하나에 동일한 키가 나타나면 서로 다른 하위 항목이 하나의 배열로 병합되고 최종 결과는 다차원 배열이 됩니다.
샘플 코드는 다음과 같습니다.
$arr1 = array("name"=>"张三","age"=>18,"hobbies"=>array("football","basketball")); $arr2 = array("name"=>"李四","age"=>20,"hobbies"=>array("swimming","shopping")); $result = array_merge_recursive($arr1,$arr2);
실행 후 결과는
array( "name"=>array("张三","李四"), "age"=>array(18,20), "hobbies"=>array( array("football","basketball"), array("swimming","shopping") ) )
보시다시피 동일한 키의 값("이름", "나이", "취미")이 병합되어 다차원 배열이 됩니다.
2. 루프 순회 사용
array_merge_recursive() 함수를 사용하는 것 외에도 루프 순회를 사용하여 배열에서 동일한 키를 가진 요소를 하나로 병합할 수도 있습니다.
샘플 코드는 다음과 같습니다.
$arr = array( "name"=>"张三", "age"=>18, "grade"=>"一年级", "major"=>"计算机科学", "score"=>array("英语"=>80,"数学"=>90), "address"=>array("province"=>"广东省","city"=>"深圳市") ); $newArr = array(); foreach($arr as $key=>$value){ if(array_key_exists($key,$newArr)){ if(!is_array($newArr[$key])){ $tmp = $newArr[$key]; $newArr[$key] = array(); array_push($newArr[$key],$tmp); } array_push($newArr[$key],$value); }else{ $newArr[$key] = $value; } }
실행 후 결과는 다음과 같습니다.
array( "name"=>"张三", "age"=>18, "grade"=>"一年级", "major"=>"计算机科学", "score"=>array("英语"=>80,"数学"=>90), "address"=>array("province"=>"广东省","city"=>"深圳市") )
보시다시피 원본 배열에는 동일한 키를 가진 요소가 없으므로 $newArr은 원본 배열과 완전히 동일합니다. .
3. array_reduce() 함수를 사용하세요
위의 두 가지 방법 외에도 PHP에 포함된 array_reduce() 함수를 사용하여 배열에서 동일한 키를 가진 요소를 하나로 병합할 수도 있습니다.
샘플 코드는 다음과 같습니다.
$arr = array( "name"=>"张三", "age"=>18, "grade"=>"一年级", "major"=>"计算机科学", "score"=>array("英语"=>80,"数学"=>90), "address"=>array("province"=>"广东省","city"=>"深圳市") ); $newArr = array_reduce(array_keys($arr),function($result,$key) use ($arr){ if(array_key_exists($key,$result)){ if(!is_array($result[$key])){ $tmp = $result[$key]; $result[$key] = array(); array_push($result[$key],$tmp); } array_push($result[$key],$arr[$key]); }else{ $result[$key] = $arr[$key]; } return $result; },array()); print_r($newArr);
실행 후의 결과는 위의 방법 2의 결과와 같습니다.
요약하자면, PHP 배열에서 동일한 키를 가진 요소를 처리하는 방법에는 여러 가지가 있으며 각 방법마다 적용 가능한 상황이 있습니다. 실제 상황에 따라 가장 적절한 처리 방법을 선택할 수 있습니다.
위 내용은 PHP에서 배열의 동일한 키를 가진 값을 하나로 결합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!