php array_column с несущественным индексом возвращает неверный индекс

Итак, у меня есть массив в php, например:

array( 22 => array() 23 => array() 25 => array() ) 

Я использую array_column в search_array для поиска столбца в вспомогательных массивах.

 $index=array_search('needlehere',array_column(myarray,'columnbeingsearchedhere')) 

Но array_column не использует правильные индексы, но переиндексирует их на 0,1,2 …

Есть ли способ сохранить правильные индексы?

array_column () не поддерживает индексы (хотя он позволяет вам установить свой собственный из других столбцов данных в строке), но вы можете справиться с этим, используя что-то вроде:

 array_combine( array_keys($myarray), array_column($myarray,'columnbeingsearchedhere') ); 

РЕДАКТИРОВАТЬ

Альтернатива, которая, вероятно, временно занимает немного больше памяти (если вы не возражаете против изменения исходного массива), но может быть немного быстрее в целом (в зависимости от ваших данных):

 $newArray = $myArray; array_walk($newArray, function(&$value) use ($columnName) { $value = $value[$columnName]; } );