Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有不连续索引的php数组_列返回错误的索引_Php_Arrays_Search - Fatal编程技术网

带有不连续索引的php数组_列返回错误的索引

带有不连续索引的php数组_列返回错误的索引,php,arrays,search,Php,Arrays,Search,我在php中有一个数组,如下所示: array( 22 => array() 23 => array() 25 => array() ) 我使用搜索数组中的数组列来搜索子数组中的列 $index=array_search('needlehere',array_column(myarray,'columnbeingsearchedhere')) 但是array_列没有使用正确的索引,而是将它们重新索引为0,1,2 是否仍要保留正确的索引?array\u colum

我在php中有一个数组,如下所示:

array(
  22 => array()
  23 => array()
  25 => array()
)
我使用搜索数组中的数组列来搜索子数组中的列

$index=array_search('needlehere',array_column(myarray,'columnbeingsearchedhere'))
但是array_列没有使用正确的索引,而是将它们重新索引为0,1,2

是否仍要保留正确的索引?

array\u column()不维护索引(尽管它允许您从行中的其他数据列中设置自己的索引),但您可以使用以下方法来处理:

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

或者,这可能会暂时占用更多的内存(除非您不介意修改原始数组),但总体上可能会快一点(取决于您的数据):


array\u column
用于获取公共索引列……如果数组中的某些子集没有指定的列,array\u combine解决方案将不起作用(array\u column将转储这些列,而不是返回NULL).这是一个可能的解决办法,但我想开销会大得多,可能值得做一个简单的循环。
$newArray = $myArray;
array_walk($newArray, function(&$value) use ($columnName) { $value = $value[$columnName]; } );