想知道是否可以对这个阵列进行任何改进?
测试数组行数是40,000条记录。
循环完成需要很长时间。
样本值:
$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;
}
}
}
答案 0 :(得分:0)
我认为这不是您需要编辑的数组。如果要从数据库中检索这些数据,则必须加快sql查询速度。此外,您可以为您的游戏添加索引。 这是您可以参考的链接。 http://www.catswhocode.com/blog/10-sql-tips-to-speed-up-your-database
答案 1 :(得分:0)
您可以将数组$ test []构建为字典(user products_id。“_”。products_extra_fields_name as key)
$ test [$ data ['products_id']。“_”。$ data ['products_extra_fields_name']] = array( 'products_id'=> $数据[ 'products_id'], 'products_extra_fields_id'=> $数据[ 'products_extra_fields_id'], 'products_extra_fields_name'=> $数据[ 'products_extra_fields_name'], 'products_extra_fields_value'=> $数据[ 'products_extra_fields_value'] );
执行此操作后,您可以直接索引数组,因为您已经拥有列名和products_id