PHP 배열을 복사하고 싶지만 다른 배열에 키가있는 배열의 요소 만 복사하면됩니다. 여기 PHP 배열의 특정 키, 내장 함수 복사? 중첩 루프 성능?
내 배열 인 :$data[123] = 'aaa';
$data[423] = 'bbb';
$data[543] = 'ccc';
$data[231] = 'ddd';
$data[642] = 'eee';
$data[643] = 'fff';
$data[712] = 'ggg';
$data[777] = 'hhh';
$keys_to_copy[] = '123';
$keys_to_copy[] = '231';
$keys_to_copy[] = '643';
$keys_to_copy[] = '712';
$keys_to_copy[] = '777';
$copied_data[123] = 'aaa';
$copied_data[231] = 'ddd';
$copied_data[643] = 'fff';
$copied_data[712] = 'ggg';
$copied_data[777] = 'hhh';
I 수 같은 데이터 배열을 통해 단지 루프 :
foreach ($data as $key => $value) {
if (in_array($key, $keys_to_copy)) {
$copied_data[$key] = $value;
}
}
그러나 이것은 MySQL의 결과에서 데이터를 검색하는 루프 내에서 발생한다 세트. 따라서 이것은 MySQL 데이터 루프 내에 중첩 된 루프가 될 것입니다. 필자가 찾고있는 결과를 얻기 위해 PHP의 내장 배열 함수를 사용할 방법이 없다면 일반적으로 중첩 된 루프는 사용하지 않는 것이 좋습니다. 그러나 MySQL 데이터 루프 내에서 중첩 된 루프가 발생하는 것에 지쳐서 MySQL을 계속 사용하고 싶지 않습니다.
나는 네가 수백 줄의 데이터와 어쩌면 10 개의 키 이상으로 이것을 결코하지 않을 것이므로 중첩 루프 성능에 대해 걱정할 것입니다.
그러나 내장 된 PHP 함수를 사용하여이 작업을 수행 할 수있는 방법이 있는지 알고 싶습니다.
내 $keys_to_copy
배열에 키가 아닌 배열 값으로 배열되어 있기 때문에 array_intesect_key()
을 보았습니다.
누구나 아이디어가 있습니까?
건배, B
왜 '$ keys_to_copy'를 메인 루프로 사용하지 않습니까? – Yoshi