Php 在多级数组中搜索字符串的部分
有没有一个函数可以让我在多层次的多维数组中进行搜索?下面是一个数组示例 我想要的是能够在整个数组中搜索,不管它有多深(3级深度将是实际的限制)。搜索必须在数组元素内的所有字符串中进行,为了使搜索更加复杂,它需要能够在数组中找到字符串的一部分(最好不区分大小写) 我已经寻找了一个好的类或函数,可以快速有效地处理这个问题,但到目前为止还没有找到Php 在多级数组中搜索字符串的部分,php,Php,有没有一个函数可以让我在多层次的多维数组中进行搜索?下面是一个数组示例 我想要的是能够在整个数组中搜索,不管它有多深(3级深度将是实际的限制)。搜索必须在数组元素内的所有字符串中进行,为了使搜索更加复杂,它需要能够在数组中找到字符串的一部分(最好不区分大小写) 我已经寻找了一个好的类或函数,可以快速有效地处理这个问题,但到目前为止还没有找到 Array ( [0] => Array ( [OrderReferenceNumber] =>
Array
(
[0] => Array
(
[OrderReferenceNumber] => 201100196
[OrderCustomerID] => 01239123
[OrderCustomerName] => test
[OrderHistoryItems] => Array
(
[0] => Array
(
[OrderItem] => productID
[OrderItemGroup] => productName
)
)
)
非常感谢 这将搜索数组所有级别上的所有元素,并且搜索区分大小写。只需传递搜索词和要搜索的数组
class mySearcher
{
protected $search = '';
public function search($search, $arr)
{
$this->search = $search;
$this->searchArr($arr);
}
protected function searchArr($arr)
{
if(is_array($arr))
{
foreach($arr as $value)
{
if(is_array($value))
{
$this->searchArr($value); // this element is an array, so recursively search it
}
else
{
if(stripos($value, $this->search) !== false)
{
// found the search term, do something
echo 'found in: ' . $value . '<br />';
}
}
}
}
}
}
$obj = new mySearcher();
$obj->search('test', $arr); // search for 'test' in the array called $arr
classmysearcher
{
受保护的$search='';
公共功能搜索($search,$arr)
{
$this->search=$search;
$this->searchArr($arr);
}
受保护函数searchArr($arr)
{
if(is_数组($arr))
{
foreach($arr作为$value)
{
if(是_数组($value))
{
$this->searchArr($value);//这个元素是一个数组,所以递归地搜索它
}
其他的
{
if(stripos($value,$this->search)!==false)
{
//找到搜索词,做些什么
在“.$value.”中找到“echo”。
;
}
}
}
}
}
}
$obj=新的mysearch();
$obj->search('test',$arr);//在名为$arr的数组中搜索“test”