在多维数组中搜索并获取索引

flk*_*lks 0 php arrays search multidimensional-array

我有一个像这样的数组:

printr_($photos);
======

Array
(
    [0] => Array
        (
            [path] => site:photos/photo-1.jpg
            [data] => Array
                (
                    [PhotoTitle] => Mega title
                    [PhotoDate] => 2015
                    [FlickrURL] => xxx
                    [Portrait] => 
                    [slug] => mega-title
                )

        )

    [1] => Array
        (
            [path] => site:photos/photo-2.jpg
            [data] => Array
                (
                    [PhotoTitle] => Photo title
                    [PhotoDate] => 2001
                    [FlickrURL] => xxx
                    [Portrait] => 
                    [slug] => photo-title
                )

        )

...
Run Code Online (Sandbox Code Playgroud)

我想从一个字符串中获取数组索引(这是我浏览器当前URL中的子标签)。
尝试了该解决方案,但出现错误(第95行上的未定义索引:数据[…])

/*
** Search in array
*/
function arraySearch($array, $field, $search){
    foreach($array as $key => $value){
        if ($value[$field] === $search)
            return $key;
    }
    return false;
}

// Line 95
$photo_index = $photos[arraySearch($photos["data"], "slug", "mega-title")];
Run Code Online (Sandbox Code Playgroud)

Abr*_*ver 5

PHP> = 5.5可以正常工作:

$key = array_search('mega-title', array_column(array_column($photos, 'data'), $slug));
$photo_index = $photos[$key];
Run Code Online (Sandbox Code Playgroud)