Wondering whether any improvement can be done to speed up this array?
test array row count is 40,000 record.
it took very long time for the loop to be completed.
sample value:
$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;
}
}
}
You can build the array $test[] as dictionary (user products_id . “_” . products_extra_fields_name as key)
$test[$data[‘products_id’] .”_”.$data[‘products_extra_fields_name’]] = 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’]
);
Once you do this, you can directly index the array since you already have column name and products_id