Home >Backend Development >PHP Tutorial >求一个数组算法

求一个数组算法

WBOY
WBOYOriginal
2016-06-23 13:39:041154browse

根据 “数组1” 和 “数组2”,得到 “数组3”这样的结果,而且最好能高效点
数组2是设置好的一些属性;数组1是商品可能只填写了某个或某几个属性

//数组1Array(    [100008] => Array        (            [5] => Array                (                    [name] => 价格                    [0] => 不限                )            [6] => Array                (                    [name] => 折扣                    [0] => 不限                )        )    [100009] => Array        (            [5] => Array                (                    [name] => 价格                    [8] => 0-29                )            [6] => Array                (                    [name] => 折扣                    [13] => 3-5折                )	   [7] => Array                (                    [name] => 出版社                    [20] => 北京大学出版社                )        ))//数组2Array(    [0] => Array        (            [attr_id] => 5            [attr_name] => 价格            [attr_value] => 0-29,30-49,50-99,100以上        )    [1] => Array        (            [attr_id] => 6            [attr_name] => 折扣            [attr_value] => 0-3折,3-5折,5-7折,7-10折        )    [2] => Array        (            [attr_id] => 7            [attr_name] => 出版社            [attr_value] =>        ))//得到结果:数组3Array(    [100008] => Array        (            [价格] => 不限            [折扣] => 不限            [出版社] =>         )    [100009] => Array        (            [价格] => 0-29            [折扣] => 3-5折            [出版社] => 北京大学出版社        ))


 


回复讨论(解决方案)

$a = array (  100008 => array (    5 => array (      'name' => '价格',      0 => '不限',    ),    6 => array (      'name' => '折扣',      0 => '不限',    ),  ),  100009 => array (    5 => array (      'name' => '价格',      8 => '0-29',    ),    6 => array (      'name' => '折扣',      13 => '3-5折',    ),    7 => array (      'name' => '出版社',      20 => '北京大学出版社',    ),  ),);$b = array (  0 => array (    'attr_id' => '5',    'attr_name' => '价格',    'attr_value' => '0-29,30-49,50-99,100以上',  ),  1 => array (    'attr_id' => '6',    'attr_name' => '折扣',    'attr_value' => '0-3折,3-5折,5-7折,7-10折',  ),  2 => array (    'attr_id' => '7',    'attr_name' => '出版社',    '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        (            [价格] => 不限            [折扣] => 不限            [出版社] =>         )    [100009] => Array        (            [价格] => 0-29            [折扣] => 3-5折            [出版社] => 北京大学出版社        ))

版主,牛....

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn