PHP에서이 배열은 배열에있는 것과 일치하는 태그 배열을 기반으로 필터링해야하는 $tree
입니다.in_array가 작동하지 않는 익명의 PHP 함수
Array
(
[0] => stdClass Object
(
[name] => Introduction
[id] => 798162f0-d779-46b6-96cb-ede246bf4f3f
[tags] => Array
(
[0] => client corp
[1] => version 2
)
)
[1] => stdClass Object
(
[name] => Chapter one
[id] => 761e1909-34b3-4733-aab6-ebef26d3fcb9
[tags] => Array
(
[0] => pro feature
)
)
)
내가 지금처럼 익명 함수를 사용하여 시도 :
$selectedTree = array_filter($tree, function($array) use ($selectedTags){
return in_array($array->tags, $selectedTags, true);
});
$ selectedTags을 :
Array
(
[0] => client corp
)
의 I는 항목 1이 반환 될 기대할 때 위의 빈 반환합니다. 오류가 발생하지 않았습니다. 내가 뭘 놓치고 있니?
죄송합니다. 현재의 행동이 무엇인지 분명하지 않습니다. 작동하지 않습니까? 올바르게 필터링하지 않습니까? 그것은 예외를 던지고 있습니까? –
@ChrisForrence 죄송합니다. 필터링되지 않았습니다 (즉, 비어 있음). 오류가 발생하지 않았습니다. – greener
함수는 배열 인'$ array-> tags'에서'$ selectedTags'를 검색합니다. 'in_array()'는 배열이 정확히 일치하는 경우 (같은 내용의 요소 수가 같은 경우)에만 true를 반환합니다. 한 배열을 반복하면서 다른 배열의 각 요소를 차례로 검색해야합니다. –