самый быстрый способ получить ключ родительского массива в многомерных массивах с php - PullRequest
4 голосов
/ 05 мая 2010

Каков наилучший способ получить ключ родительского массива с многомерными массивами? например у меня есть этот массив:

array(

    [0] => array(0=> sample, 1=>picture, 2=>frame, 3=>google)

    [1] => array(0=> iphone, 1=>orange, 2=>love, 3=>msn)

    [2] => array(0=> joe, 1=>geee, 2=>panda, 3=>yahoo)
)

Теперь мне нужно найти, например, Google и получить ключ родительского массива. какие это должны быть 0 ... какие-либо идеи? Я использовал для цикла для этого, но я думаю, что будет медленно, если у меня есть массивы с 700000 строк ..

Ответы [ 2 ]

7 голосов
/ 05 мая 2010

Если у вас есть массив с 700 000 строк, вы почти наверняка делаете что-то не так ... Сначала я бы порекомендовал подумать об использовании другого хранилища данных: плоского файла или некоторого типа БД.


foreach($array as $key => $value) {
    if(in_array('google', $value)) return $key
}

4 голосов
/ 05 мая 2010

Массивы с 700 000 строк? Сколько массивов? 9/10 раз проблема в том, что вы неправильно настроили ваши данные.

Я собираюсь пойти дальше и предположить, что вы делаете какой-то поиск. Поскольку вы не можете индексировать массив (в значении индекса search ), вам, вероятно, лучше всего поместить данные в базу данных и максимально использовать индексацию столбцов для быстрого поиска.

В зависимости от контекста, вы можете подумать о хранении ваших данных в файлах, по одному на массив, и об использовании поиска файлов, чтобы найти, какой файл содержит ваше значение.

...