분명히 사용하여 array_map
구현하는 컨테이너 사용하는 경우와 ArrayAccess
단지 스마트, 의미 론적 방법은 이것에 대해 이동하는 것입니다 파생 개체를?
배열 맵 시맨틱은 내가 본 대부분의 언어와 구현에서 유사합니다. 입력 배열 요소를 기반으로 수정 된 배열을 반환하도록 설계되었습니다 (고수준 무시 언어 컴파일 / 런타임 유형 기본 설정). 루프는 더 많은 논리를 수행하기위한 것입니다.
ID / PK로 개체를 검색하려면 SQL을 사용하는지 여부에 따라 (제안 된 것처럼 보임) 필터를 사용하여 유효한 PK 배열을 얻은 다음 쉼표로 내파하고 SQL IN()
절에 배치 하여 결과 집합을 반환합니다. SQL을 통해 여러 번 호출하는 대신 하나의 호출을 수행하여 약간의 call->wait
주기를 최적화합니다 . 가장 중요한 것은 내 코드가 어느 정도의 능력을 가진 모든 언어의 누군가에게 잘 읽을 수 있고 우리는 가변성 문제에 부딪히지 않는다는 것입니다.
<?php
$arr = [0,1,2,3,4];
$arr2 = array_map(function($value) { return is_int($value) ? $value*2 : $value; }, $arr);
var_dump($arr);
var_dump($arr2);
vs
<?php
$arr = [0,1,2,3,4];
foreach($arr as $i => $item) {
$arr[$i] = is_int($item) ? $item * 2 : $item;
}
var_dump($arr);
당신이하고있는 일을 안다면 결코 변경 성 문제가 없을 것입니다 (덮어 쓰기 $arr
를 의도한다면 당신은 항상 $arr = array_map
명시적일 수 있음 을 염두에 두십시오 .