所以我在php中有一个像这样的数组:
array(
22 => array()
23 => array()
25 => array()
)
我在search_array中使用array_column来搜索子数组中的列。
$index=array_search('needlehere',array_column(myarray,'columnbeingsearchedhere'))
但是array_column没有使用正确的索引,而是将它们重新索引为0,1,2 ......
无论如何都要保留正确的索引吗?
答案 0 :(得分:3)
array_column()不会维护索引(尽管它允许您从行中的其他数据列设置自己的索引),但您可以使用以下内容来处理:
array_combine(
array_keys($myarray),
array_column($myarray,'columnbeingsearchedhere')
);
修改强>
替代方案,这可能会暂时占用更多内存(除非您不介意修改原始数组),但总体上可能会更快一些(取决于您的数据):
$newArray = $myArray;
array_walk($newArray, function(&$value) use ($columnName) { $value = $value[$columnName]; } );