У меня есть гигантский массив, в котором нужно найти совпадения. Вот небольшая часть массива PHP: $arr = array( "applist"=> array("apps"=> array( array("id"=>730, "name"=>"name") ) ) ); И есть код с функцией array_filter PHP: $numb = 730; print_r(array_filter($arr['applist']['apps'], function($a){ if($a['appid'] == $numb) echo "+1"; return $a["appid"] == $numb; })); Выводит пустой массив, и "+1" не выводиться. Но если я сделаю так PHP: print_r(array_filter($arr['applist']['apps'], function($a){ if($a['appid'] == 730) echo "+1"; return $a["appid"] == $numb; })); То возвращает то, что нужно, и выводит "+1". Я не могу понять, в чем проблема, почему при сравнении $a['appid'] с $numb возвращает false, а при сравнении с 730 возвращает true?
Вероятнее всего тебе нужно в анонимной функции отнаследовать $numb Код (Text): $example = function () use ($numb) { var_dump($numb); };