$needle = 'user4';
$array = array(
array('id'=>0, 'name'=>'user0'),
array('id'=>1, 'name'=>'user1'),
array('id'=>2, 'name'=>'user2'),
array('id'=>3, 'name'=>'user3'),
array('id'=>4, 'name'=>'user4')
);
function in_array_recursive($needle, $array){
foreach($array as $value){
if(is_array($value))
return in_array_recursive($needle, $value);
else{
if($needle == $value)
return true;
}
}
return false;
}
var_dump(in_array_recursive($needle, $array));
результат: 0.022129058837891
foreach($array as $k=>$v){
if($v['name'] == $needle)
$result = true;
else
$result = false;
}
var_dump($result);
результат: 0.015708923339844Да здесь видно преимущество. Но я просто сразу не обратил внимание на то что нужно отработать анологично in_array() по 2у мерному ассоц массиву.
так бы просто написал обёртку к
foreach($array as $k=>$v){
if($v['name'] == $needle)
$result = true;
else
$result = false;
}
тест проводил на 10к итераций
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker