0

我有一个从我的数据库中获取的数组,当它是 print_r 时输出以下内容

Array ( [0] => stdClass Object ( [name] => Administrator ) [1] => stdClass Object ( [name] => Events Organiser ) )

我将如何搜索该数组以查看它是否包含“Events Organizer”字样?

我知道它是否是标准阵列设置,例如

Array ( [0] => Administrator ) [1] => Events Organiser ) ) 

然后我可以使用 in_array 但这似乎不适用于我的数组的输出方式。

4

3 回答 3

0

您可以使用array_filter让您指定自定义函数来进行搜索。在您的情况下,一个简单的函数用于strpos()检查您的搜索字符串是否存在:

function my_search($targetval) {
    $srch_val= 'value to search';
    return(strpos($targetval, $srch_val)); // or stripos() if you want case-insensitive searching.
}

$matches = array_filter($your_array, 'my_search');

如需进一步参考,您可以查看此链接

于 2012-10-20T13:47:47.990 回答
0

array_search 会这样做,示例如下

<?php
$your_array = array(key=>values);

$key = array_search('value_for_search', $your_array); 

 ?>
于 2012-10-20T13:40:11.780 回答
0

重建阵列

$std = new stdClass();
$std->name = "Administrator";

$std2 = new stdClass();
$std2->name = "Events Organiser";

$array = array($std,$std2);

您可以使用

$find = "Events Organiser" ;
$list = array_filter($array,function($v) use ($find) { return $v->name == $find ; });
var_dump($list);
于 2012-10-20T13:43:44.587 回答