업데이트해야하는 값 집합이있는 연락처 배열이 있습니다. 또한 기존 연락처와 업데이트 된 연락처 사이에 diff를 저장하는 contactChangeLog 배열이 있습니다. 업데이트 된 키만 로그에 저장해야합니다. 2 접촉 배열과 그래서 :array_diff_assoc()보다 PHP가 더 효율적인 알고리즘
$oldContact = array(
'name' => 'Joeahkd',
'address' => '123 Masjdhfin',
'city' => 'Spring',
'state' => 'CA',
'zip' => '90101',
);
$newContact = array(
'name' => 'Joe',
'address' => '123 Main St',
'city' => 'Springville',
'state' => 'CA',
'zip' => '90101',
);
내가 array_diff_assoc() ... 그러나
$existing = array_diff_assoc($oldContact, $newContact);
$update = array_diff_assoc($newContact, $oldContact);
$diff = array('previous' => $existing, 'new' => $update);
print_r($diff);
을 사용할 수 있습니다, 나는 각 배열 내가 큰 O 표기법에 대해 배운 것을 통해 두 번 반복하고하는 것은 나에게 그 ISN을 알려줍니다 '맞아. 업데이트 된 키 및 기존 값과 업데이트 된 값을 반환하는 알고리즘 적으로 효율적인 방법이 있습니까? 결과는 같아야합니다
는$previous = array(
'name' => 'Joeahkd',
'address' => '123 Masjdhfin',
'city' => 'Spring'
);
$updated = array(
'name' => 'Joe',
'address' => '123 Main St',
'city' => 'Springville'
);
이것은 훌륭하다. 필자가 작성한 것과 익명의 함수를 사용하는 것보다 더 효율적입니다. PHP에서 그다지 많이 보지 못했습니다. – shotdsherrif
또한 이러한 구현의 전후에 microtime()을 사용하여 간단한 벤치 마크 테스트를 수행 할 것입니다. C++ 프로그래머와 협력하여 언어가 사용하는 기본 C 라이브러리에 대해 논의했습니다. – shotdsherrif