php에서 array_flip () 및 array_walk () 는 기능이 다르지만 매우 강력한 두 배열 작동 함수입니다. 전자는 배열의 키와 값을 바꾸는 데 사용되며, 후자는 배열을 반복하고 요소에서 콜백 함수를 실행하는 데 사용됩니다. 따라서 문제는이 두 기능을 조합하여 사용할 수 있다는 것입니다. 그들의 조합은 무엇입니까? 이 기사는 예제를 통해 자세한 답변을 제공합니다.
Array_flip ()는 배열에서 키 이름과 키 값을 교환합니다 . 값이 합법적 인 키 (예 : 배열 또는 객체)가 아닌 경우 경고가 발생합니다.
$input = [
'apple' => 'fruit',
'carrot' => 'vegetable',
];
$flipped = array_flip($input);
// 산출:Array ( [fruit] => apple [vegetable] => carrot )
print_r($flipped);
Array_Walk ()는 배열의 각 요소에서 사용자 정의 콜백 함수를 실행할 수 있습니다. 배열 값을 수정하고 더 복잡한 작업을 위해 콜백에서 키 이름을 사용할 수도 있습니다.
$data = ['a' => 1, 'b' => 2, 'c' => 3];
array_walk($data, function (&$value, $key) {
$value = $value * 2;
});
// 산출:Array ( [a] => 2 [b] => 4 [c] => 6 )
print_r($data);
대답은 : 예 ! 이 두 기능은 다르지만 복잡한 배열 변환 작업을 구현하기 위해 직렬로 사용될 수 있습니다. 다음은 일반적인 사용 시나리오입니다.
URL 슬러그 값이있는 배열이 있는데 먼저 뒤집기를 원하는 다음 SEO_ 로 원래 값 (이제 키 이름으로)을 접두사로 만듭니다.
$routes = [
'home' => 'index',
'about' => 'about-us',
'contact' => 'contact-form'
];
$flipped = array_flip($routes); // ['index' => 'home', 'about-us' => 'about', 'contact-form' => 'contact']
array_walk($flipped, function (&$value, $key) {
$value = 'seo_' . $value;
});
// 산출:Array ( [index] => seo_home [about-us] => seo_about [contact-form] => seo_contact )
print_r($flipped);
URL 리디렉션 모듈을 개발 중이며 경로 세트 및 컨트롤러 방법을 매핑한다고 가정합니다. 이러한 경로에 따라 SEO 라우팅 구성을 동적으로 생성해야합니다. 다음과 같은 방법으로 구현할 수 있습니다.
$routes = [
'home' => 'index',
'about' => 'about-us',
'contact' => 'contact-form'
];
// 배열을 뒤집습니다,쉽게 전송할 수 있습니다 slug 키 이름으로
$slugMap = array_flip($routes);
// 추가 m66.net 도메인 이름 접두사
array_walk($slugMap, function (&$value, $slug) {
$value = 'https://m66.net/' . $slug;
});
print_r($slugMap);
출력 결과 :
Array
(
[index] => https://m66.net/home
[about-us] => https://m66.net/about
[contact-form] => https://m66.net/contact
)
Array_flip () 및 Array_walk () 를 결합함으로써 배열의 구조를 변경했을뿐만 아니라 Array_walk () 의 강력한 기능을 배치 프로세스에 사용하여 새로운 배열을 배치하여 동적 매핑 테이블 또는 구성 배열을 구축하는 데 매우 적합합니다.
Array_flip () 및 array_walk ()는 다른 책임이 있지만 유연한 배열 구조 변환 및 배치 처리를 실현하기 위해 많은 실용적인 시나리오에서 함께 사용될 수 있습니다. 배열 구조를 먼저 변환 한 다음 요소를 균일하게 작동시킬 경우이 조합을 고려할 수도 있습니다.
이 기사가 PHP의 배열 기능의 조합을 이해하도록 영감을주기를 바랍니다. 더 복잡한 응용 프로그램 예제가 필요한 경우 Array_Map () 또는 Array_Filter ()를 사용하는 것과 같이 깊이를 계속 탐색 할 수도 있습니다.