有两个数组:
1.
array(4) {
  [0] => array(1) {
    ["num"] => int(2500)
  }
  [1] => array(1) {
    ["num"] => int(1700)
  }
  [2] => array(1) {
    ["num"] => int(1300)
  }
  [3] => array(1) {
    ["num"] => int(1500)
  }
}
2.
array(5) {
  [0] => array(1) {
    ["num"] => int(3000)
  }
  [1] => array(1) {
    ["num"] => int(1000)
  }
  [2] => array(1) {
    ["num"] => int(500)
  }
  [3] => array(1) {
    ["num"] => int(500)
  }
  [4] => array(1) {
    ["num"] => int(2000)
  }
}实现一对一,一对多,多对一就是比如举个例子:
第一个数组的第1个值2500与第二个数组的第3个值跟第5个值进行配对,也就是2500 = 500 + 2000,然后把多数的那个取出来,也就是取出500跟2000的值.如果是一对一就取其中一个值就可以这两个数组配对后最终得到的结果应该是:
array(6) {
  [0] => array(1) {
    ["num"] => int(500)
  }
  [1] => array(1) {
    ["num"] => int(2000)
  }
  [2] => array(1) {
    ["num"] => int(1700)
  }
  [3] => array(1) {
    ["num"] => int(1300)
  }
  [4] => array(1) {
    ["num"] => int(1000)
  }
  [5] => array(1) {
    ["num"] => int(500)
  }
}
顺序不一定要跟我这个的一样,但是最后得到的结果值就是这几个。

解决方案 »

  1.   


    你的问题是不是这样的:
    两个一维数组$a,$b,新数组$c;
    遍历$a,对得到的每一个值$value。先和$b一对一匹配,匹配到则将值$value赋值给$c,
    如果没有则继续和$b匹配看是否等于$b中某两个值($item1,$item2)的和,如果存在这两个值,则将$b中的这两个值(($item1,$item2))赋给$c,如果没有,则把$value赋给$c。
    关于如何匹配数组两个值的和等于特定值:http://blog.csdn.net/hackbuteer1/article/details/6699642