欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

数组算法

程序员文章站 2022-06-11 17:08:51
...
求一个数组算法
根据 “数组1” 和 “数组2”,得到 “数组3”这样的结果,而且最好能高效点
数组2是设置好的一些属性;数组1是商品可能只填写了某个或某几个属性

//数组1
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] => 北京大学出版社
)

)

)

//数组2
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] =>
)

)

//得到结果:数组3
Array
(
[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折
[出版社] => 北京大学出版社
)

)

数组算法

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频