两个数组合并不覆盖重复的值

segocnzhudan 2017-01-07 11:39:09
我又两个数组,现在想合并成为一个数组,但是在用foreach(),array_combine之后都是去重了,原数组如下:

$a= array("8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27");
$b= array ("5","5","3","3","4","5","5","5","6","6","6","6","6","5","5","5","5","5","5","5");

合并后的效果是:

Array ( [5] => 8 [5] => 9 [3] => 10 [3] => 11 [4] => 12 [5] => 13 [5] => 14 [6] => 15 .......[5] => 27 )

不知道这个该怎么弄呢
...全文
554 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
it0_soft 2017-01-09
  • 打赏
  • 举报
回复
哎,这个不难吧,你想太多了,$arr[$key]就可以直接取出value啊,再说你那个函数完全可以用array_combine($a,$b);嘛,然后通过$key不就吧$value取出来了
segocnzhudan 2017-01-09
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你想用 $b 做键,$a 做值。那么同名的键必然都会后者覆盖前者 也就是说,你不可能得到你期望的数组。 因为即便是你手写,也写不出来 你这能生成这样的二维数组
$a= array("8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27");
$b= array ("5","5","3","3","4","5","5","5","6","6","6","6","6","5","5","5","5","5","5","5");
$c = array_map(function($x, $y){return array($x=>$y);}, $b, $a);
print_r($c);
Array
(
    [0] => Array
        (
            [5] => 8
        )

    [1] => Array
        (
            [5] => 9
        )

    [2] => Array
        (
            [3] => 10
        )

    [3] => Array
        (
            [3] => 11
        )

    [4] => Array
        (
            [4] => 12
        )

    [5] => Array
        (
            [5] => 13
        )

    [6] => Array
        (
            [5] => 14
        )

    [7] => Array
        (
            [5] => 15
        )

    [8] => Array
        (
            [6] => 16
        )

    [9] => Array
        (
            [6] => 17
        )

    [10] => Array
        (
            [6] => 18
        )

    [11] => Array
        (
            [6] => 19
        )

    [12] => Array
        (
            [6] => 20
        )

    [13] => Array
        (
            [5] => 21
        )

    [14] => Array
        (
            [5] => 22
        )

    [15] => Array
        (
            [5] => 23
        )

    [16] => Array
        (
            [5] => 24
        )

    [17] => Array
        (
            [5] => 25
        )

    [18] => Array
        (
            [5] => 26
        )

    [19] => Array
        (
            [5] => 27
        )

)

徐大斑竹,如果我以$b做key,$a做value的话,那么怎么通过key查找到value呢
segocnzhudan 2017-01-09
  • 打赏
  • 举报
回复
引用 6 楼 WPooh 的回复:
相同的key,只会保留最后一个值,否则key一样,你获取哪个值呢?可以把键/值放到一个数组里

Array
(
    [0] => Array
        (
            [0] => 5
            [1] => 8
        )

    [1] => Array
        (
            [0] => 5
            [1] => 9
        )

    [2] => Array
        (
            [0] => 3
            [1] => 10
        )

    [3] => Array
        (
            [0] => 3
            [1] => 11
        )

    [4] => Array
        (
            [0] => 4
            [1] => 12
        )

    [5] => Array
        (
            [0] => 5
            [1] => 13
        )

    [6] => Array
        (
            [0] => 5
            [1] => 14
        )

    [7] => Array
        (
            [0] => 5
            [1] => 15
        )

    [8] => Array
        (
            [0] => 6
            [1] => 16
        )

    [9] => Array
        (
            [0] => 6
            [1] => 17
        )

    [10] => Array
        (
            [0] => 6
            [1] => 18
        )

    [11] => Array
        (
            [0] => 6
            [1] => 19
        )

    [12] => Array
        (
            [0] => 6
            [1] => 20
        )

    [13] => Array
        (
            [0] => 5
            [1] => 21
        )

    [14] => Array
        (
            [0] => 5
            [1] => 22
        )

    [15] => Array
        (
            [0] => 5
            [1] => 23
        )

    [16] => Array
        (
            [0] => 5
            [1] => 24
        )

    [17] => Array
        (
            [0] => 5
            [1] => 25
        )

    [18] => Array
        (
            [0] => 5
            [1] => 26
        )

    [19] => Array
        (
            [0] => 5
            [1] => 27
        )

)
不知道你说的这个方法怎么实现呢?
segocnzhudan 2017-01-09
  • 打赏
  • 举报
回复
引用 5 楼 fdipzone 的回复:
你的key一样,肯定去重啊 Array ( [5] => 8 [5] => 9...
如果我以$b做key,$a做value的话,那么怎么通过key查找到value呢
WPooh 2017-01-08
  • 打赏
  • 举报
回复
相同的key,只会保留最后一个值,否则key一样,你获取哪个值呢?可以把键/值放到一个数组里

Array
(
    [0] => Array
        (
            [0] => 5
            [1] => 8
        )

    [1] => Array
        (
            [0] => 5
            [1] => 9
        )

    [2] => Array
        (
            [0] => 3
            [1] => 10
        )

    [3] => Array
        (
            [0] => 3
            [1] => 11
        )

    [4] => Array
        (
            [0] => 4
            [1] => 12
        )

    [5] => Array
        (
            [0] => 5
            [1] => 13
        )

    [6] => Array
        (
            [0] => 5
            [1] => 14
        )

    [7] => Array
        (
            [0] => 5
            [1] => 15
        )

    [8] => Array
        (
            [0] => 6
            [1] => 16
        )

    [9] => Array
        (
            [0] => 6
            [1] => 17
        )

    [10] => Array
        (
            [0] => 6
            [1] => 18
        )

    [11] => Array
        (
            [0] => 6
            [1] => 19
        )

    [12] => Array
        (
            [0] => 6
            [1] => 20
        )

    [13] => Array
        (
            [0] => 5
            [1] => 21
        )

    [14] => Array
        (
            [0] => 5
            [1] => 22
        )

    [15] => Array
        (
            [0] => 5
            [1] => 23
        )

    [16] => Array
        (
            [0] => 5
            [1] => 24
        )

    [17] => Array
        (
            [0] => 5
            [1] => 25
        )

    [18] => Array
        (
            [0] => 5
            [1] => 26
        )

    [19] => Array
        (
            [0] => 5
            [1] => 27
        )

)
傲雪星枫 2017-01-07
  • 打赏
  • 举报
回复
你的key一样,肯定去重啊 Array ( [5] => 8 [5] => 9...
vaptu 2017-01-07
  • 打赏
  • 举报
回复
看错题目了,修改了一下代码 = =
vaptu 2017-01-07
  • 打赏
  • 举报
回复
2楼版主的代码也不错,但是。。php提供这样的函数的
vaptu 2017-01-07
  • 打赏
  • 举报
回复
xuzuning 2017-01-07
  • 打赏
  • 举报
回复
你想用 $b 做键,$a 做值。那么同名的键必然都会后者覆盖前者
也就是说,你不可能得到你期望的数组。
因为即便是你手写,也写不出来

你这能生成这样的二维数组
$a= array("8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27");
$b= array ("5","5","3","3","4","5","5","5","6","6","6","6","6","5","5","5","5","5","5","5");
$c = array_map(function($x, $y){return array($x=>$y);}, $b, $a);
print_r($c);
Array
(
[0] => Array
(
[5] => 8
)

[1] => Array
(
[5] => 9
)

[2] => Array
(
[3] => 10
)

[3] => Array
(
[3] => 11
)

[4] => Array
(
[4] => 12
)

[5] => Array
(
[5] => 13
)

[6] => Array
(
[5] => 14
)

[7] => Array
(
[5] => 15
)

[8] => Array
(
[6] => 16
)

[9] => Array
(
[6] => 17
)

[10] => Array
(
[6] => 18
)

[11] => Array
(
[6] => 19
)

[12] => Array
(
[6] => 20
)

[13] => Array
(
[5] => 21
)

[14] => Array
(
[5] => 22
)

[15] => Array
(
[5] => 23
)

[16] => Array
(
[5] => 24
)

[17] => Array
(
[5] => 25
)

[18] => Array
(
[5] => 26
)

[19] => Array
(
[5] => 27
)

)

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧