如何改进这种php数组数据检索?
想知道是否可以做任何改进来加速此阵列 测试数组行计数为40000记录 这个循环花了很长时间才完成 样本值:如何改进这种php数组数据检索?,php,arrays,loops,Php,Arrays,Loops,想知道是否可以做任何改进来加速此阵列 测试数组行计数为40000记录 这个循环花了很长时间才完成 样本值: $test[] = array( 'products_id' => $data['products_id'], 'products_extra_fields_id' => $data['products_extra_fields_id'], 'products_extra_fields_name' => $data['products_extra_
$test[] = array(
'products_id' => $data['products_id'],
'products_extra_fields_id' => $data['products_extra_fields_id'],
'products_extra_fields_name' => $data['products_extra_fields_name'],
'products_extra_fields_value' => $data['products_extra_fields_value']
);
foreach productid
{
$colname="column name";
//this inside for loop making thing very slow
foreach ($test as $key1 => $row1)
{
$w= $row1['products_id'];
$x= $row1['products_extra_fields_id'];
$y= $row1['products_extra_fields_name'];
$z= $row1['products_extra_fields_value'];
if( ($w==$products_id) && ($y== $colname) )
{
$wantedvalue=$z;
break;
}
}
}
我认为这不是您需要编辑的数组。如果要从数据库检索这些数据,则必须加快sql查询的速度。此外,您还可以向feild添加索引。 这是一个你可以参考的链接。
完成此操作后,您可以直接为数组编制索引,因为您已经有了列名和products\u id您是否有可能拥有重复的$data['products\u id']您是否考虑过使用数据库进行此操作?我正在从数据库中读取它,并希望在导出到excel之前将其正确格式化。直接查询数据库可能会更慢(资源密集型)是的,少于5条重复记录。我添加了一个答案,请检查,这将在我检索数据时起作用,$search=$products\u id.“\u”。$colname$test[$search]['products\u extra\u fields\u value'],php警告我注意:未定义的索引:try,只有$test[$search],如果仍然得到未定义的索引,那么可能没有加载所有值,否则使用var\u dump分析数据并检查子数组是否具有正确的结构仍然未定义,我检查了var dump,看起来没问题。数组(4){[“products\u id”]=>string(4)“1343”[“products\u extra\u fields\u id”]=>string(1)“1”[“products\u extra\u fields\u name”]=>string(7)“products”[“products\u extra\u fields\u value”]=>string(52)“萤石串”}注意:未定义的索引:1343\u Authorthen问题在于$test[$search],您能粘贴$test的var\u转储吗