중첩 연관 배열의 차이점 비교
프로그래밍의 맥락에서 다차원 연관 배열을 다룰 때 다음이 필요한 경우가 많습니다. 내용을 비교하고 차이점을 식별합니다. 두 개의 배열이 있는 시나리오를 생각해 보십시오.
$pageids = [ ['id' => 1, 'linklabel' => 'Home', 'url' => 'home'], ['id' => 2, 'linklabel' => 'Graphic Design', 'url' => 'graphicdesign'], ['id' => 3, 'linklabel' => 'Other Design', 'url' => 'otherdesign'], ['id' => 6, 'linklabel' => 'Logo Design', 'url' => 'logodesign'], ['id' => 15, 'linklabel' => 'Content Writing', 'url' => 'contentwriting'], ]; $parentpage = [ ['id' => 2, 'linklabel' => 'Graphic Design', 'url' => 'graphicdesign'], ['id' => 3, 'linklabel' => 'Other Design', 'url' => 'otherdesign'], ];
목표는 $parentpage에 없는 $pageids의 행을 찾는 것입니다. 배열에 중첩된 연관 배열이 포함된 경우 array_diff_assoc()만 사용하면 원하는 결과를 얻지 못할 수 있습니다. 이 문제를 해결하기 위해 array_map() 및 unserialize()를 활용할 수 있습니다.
$pageWithNoChildren = array_map('unserialize', array_diff(array_map('serialize', $pageids), array_map('serialize', $parentpage)));
먼저 array_map()은 $pageids 및 $parentpage의 하위 배열을 반복하고 각 하위 배열을 serialize()를 사용한 문자열 표현. 이는 다차원 배열을 문자열을 요소로 하는 1차원 배열로 효과적으로 변환합니다.
다음으로 array_diff()는 하위 배열의 문자열 표현을 비교하고 차이점만 포함된 배열을 반환합니다. 그런 다음 결과 배열은 array_map()으로 다시 전달되며, 이는 각 문자열을 반복하고 unserialize()를 사용하여 원래 하위 배열 표현으로 다시 직렬화 해제합니다.
결과적으로 $pageWithNoChildren에는 다음 배열이 포함됩니다. $parentpage에 없는 $pageid의 행을 나타내는 하위 배열. 이 접근 방식은 중첩된 연관 배열의 내용을 효과적으로 비교하고 원하는 차이점을 제공합니다.
위 내용은 중첩된 연관 배열의 차이점을 효율적으로 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!