Calculate an array algorithm based on "array 1" and "array 2" to obtain the result of "array 3", and it is best to be efficient.
Array 2 is a set property; array 1 is a product that may only contain one or more attributes.
// Array 1 Array ([100008] => Array ([5] => Array ([name] => Price [0] => Unlimited) [6] => Array ([name] => discount [0] => unlimited )) [100009] => Array ([5] => Array ([name] => Price [8] => 0-29) [6] => Array ([name] => discount [13] => 3-5 discount) [7] => Array ([name] => Press [20] => Peking University Press ))) // Array 2 Array ([0] => Array ([attr_id] => 5 [attr_name] => Price [attr_value] => 0-29,30-49,50-99,100 or above) [1] => Array ([attr_id] => 6 [attr_name] => discount [attr_value] => 0-3, 3-5, 5-7, 7-10) [2] => Array ([attr_id] => 7 [attr_name] => Press [attr_value] =>) // obtain the following result: array 3 Array ([100008] => Array ([price] => unlimited [discount] => unlimited [publisher] =>) [100009] => Array ([price] => 0-29 [discount] => 3-5 fold [press] => Peking University Press ))
Reply to discussion (solution)
$ A = array (100008 => array (5 => array ('name' => 'price', 0 => 'unlimited ',), 6 => array ('name' => 'discount ', 0 => 'unlimited ',),), 100009 => array (5 => array ('name' => 'price', 8 => '0-29 ',), 6 => array ('name' => 'discount ', 13 => '3-5 discount',), 7 => array ('name' => 'Publisher ', 20 => 'Peking University Press ',); $ B = array (0 => array ('attr _ id' => '5 ', 'attr _ name' => 'price', 'attr _ value' => '0-29,30-49,50-99,100 ',), 1 => arr Ay ('attr _ id' => '6', 'attr _ name' => 'discount ', 'attr _ value' => '0-3, 3-5, 5-7, 7-10, ',), 2 => array ('attr _ id' => '7', 'attr _ name' => 'Publisher ', 'attr _ value' => '',),); foreach ($ a as $ key => $ item) {$ t = array (); foreach ($ B as $ v) {$ k = $ v ['attr _ id']; $ t [$ v ['attr _ name'] = isset ($ item [$ k])? End ($ item [$ k]): $ v ['attr _ value'];} $ c [$ key] = $ t;} print_r ($ c );
Array ([100008] => Array ([price] => unlimited [discount] => unlimited [publisher] =>) [100009] => Array ([price] => 0-29 [discount] => 3-5 fold [press] => Peking University Press ))
Moderator, Niu ....