Php 在多级数组中搜索字符串的部分

Php 在多级数组中搜索字符串的部分,php,Php,有没有一个函数可以让我在多层次的多维数组中进行搜索?下面是一个数组示例 我想要的是能够在整个数组中搜索,不管它有多深(3级深度将是实际的限制)。搜索必须在数组元素内的所有字符串中进行,为了使搜索更加复杂,它需要能够在数组中找到字符串的一部分(最好不区分大小写) 我已经寻找了一个好的类或函数,可以快速有效地处理这个问题,但到目前为止还没有找到 Array ( [0] => Array ( [OrderReferenceNumber] =>

有没有一个函数可以让我在多层次的多维数组中进行搜索?下面是一个数组示例

我想要的是能够在整个数组中搜索,不管它有多深(3级深度将是实际的限制)。搜索必须在数组元素内的所有字符串中进行,为了使搜索更加复杂,它需要能够在数组中找到字符串的一部分(最好不区分大小写)

我已经寻找了一个好的类或函数,可以快速有效地处理这个问题,但到目前为止还没有找到

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”