PHP : Case-Insensitive "Array_diff"
-
18-09-2019 - |
문제
두 개의 배열과 코드를 찾을 수있는 코드가 있습니다. array_diff :
$obs_ws = array("you", "your", "may", "me", "my", "etc");
$all_ws = array("LOVE", "World", "Your", "my", "etc", "CoDe");
$final_ws = array_diff($all_ws, $obs_ws);
위의 코드는 다음과 같이 출력 배열을 제공합니다.
$final_ws = array("LOVE", "World", "Your", "CoDe");
그러나 나는 그것을 원한다 :
$final_ws = array("LOVE", "World", "CoDe");
"귀하의"는 제거되지 않으며 "Y"가 두 번째 배열의 캡에 있기 때문일 수 있습니다. "당신의"도 제외하고 싶습니다. array_diff
PHP에서.
나는 시도했다 Array_udiff 하지만 나는 내 문제에서 이것을 사용하는 방법을 정확히 얻지 못하고 있습니다.
감사
해결책
통과하려고 노력하십시오 strcasecmp
세 번째 매개 변수로 array_udiff
기능:
<?php
$obs_ws = array("you", "your", "may", "me", "my", "etc");
$all_ws = array("LOVE", "World", "Your", "my", "etc", "CoDe");
$final_ws = array_udiff($all_ws, $obs_ws, 'strcasecmp');
print_r($final_ws);
산출:
Array
(
[0] => LOVE
[1] => World
[5] => CoDe
)
다른 팁
당신은 올바른 길을 가고있었습니다. 이것이 나의 제안입니다 :
function array_casecmp($arr1,$arr2){
return array_udiff($arr1,$arr2,'strcasecmp');
}
$obs_ws = array("you", "your", "may", "me", "my", "etc");
$all_ws = array("LOVE", "World", "Your", "my", "etc", "CoDe");
var_dump( array_casecmp($all_ws,$obs_ws) );
제휴하지 않습니다 StackOverflow