개발에서 [ 'name'=> 'tom', 'age'=> 28] 와 같은 연관 배열이 종종 처리됩니다. 우리가 값에만 관심을 갖고 문자열로 균일하게 변환하려는 경우 :
$data = ['name' => 'Tom', 'age' => 28];
$formatted = array_map('strval', array_values($data));
print_r($formatted);
산출:
Array
(
[0] => Tom
[1] => 28
)
이 시나리오에서는 array_values ()가 연결 키를 제거 하고 Array_map ()은 유형 변환을 완료합니다.
추가 공간과 다른 데이터 형식을 포함하는 사용자 입력에서 다음 배열을 얻는다고 상상해보십시오.
$input = [
'first' => ' Alice ',
'second' => 'BOB',
'third' => ' charlie '
];
소문자를 통합하고, 공백을 제거하고, 인덱스 어레이를 재구성하려고합니다.
$clean = array_map('trim', array_map('strtolower', array_values($input)));
print_r($clean);
산출:
Array
(
[0] => alice
[1] => bob
[2] => charlie
)
두 개의 Array_Map () S 중첩은 각 값을 처리하는 데 사용되며 최종적으로 array_values ()로 인덱스를 재구성하며 결과는 간결하고 명확합니다.
객체 배열 또는 연관 배열 목록에서 다음 시나리오에서 사용자의 ID를 추출하는 것과 같은 특정 필드를 추출해야합니다.
$users = [
['id' => 101, 'name' => 'Lily'],
['id' => 102, 'name' => 'John'],
['id' => 103, 'name' => 'Mike']
];
$ids = array_values(array_map(function ($user) {
return $user['id'];
}, $users));
print_r($ids);
산출:
Array
(
[0] => 101
[1] => 102
[2] => 103
)
이 구조화 된 데이터에서 array_map ()는 키 값을 추출하고 Array_Values ()는 출력 배열의 연속성을 보장하며, 이는 후속 데이터 처리 또는 프론트 엔드 JSON 출력에 매우 적합합니다.
때로는 사용자 이름을 기반으로 프로파일 페이지 경로 생성과 같은 특정 데이터 필드를 기반으로 매개 변수로 URL을 생성해야합니다.
$names = ['alice', 'bob', 'charlie'];
$urls = array_map(function ($name) {
return 'https://gitbox.net/user/profile/' . urlencode($name);
}, array_values($names));
print_r($urls);
산출:
Array
(
[0] => https://gitbox.net/user/profile/alice
[1] => https://gitbox.net/user/profile/bob
[2] => https://gitbox.net/user/profile/charlie
)
Array_Map ()은 경로 문자열을 생성하는 데 사용되며, Array_Values () 는 데이터가 필요할 때 연속 인덱스 배열이거나 JSON 응답에 적합하거나 프론트 엔드로 전달되도록합니다.
관련 태그:
array_values array_map