【问题标题】:PHP - Merge arrays and subtraction some valuePHP - 合并数组并减去一些值
【发布时间】:2015-09-13 19:45:04
【问题描述】:

假设我有两个数组$array1

array (size=3)
  0 =>
    array (size=5)
      'id' => int 16
      'project_id' => string '37' (length=2)
      'description' => string 'Guitar' (length=6)
      'qty' => int 87
      'uom' => string 'Units' (length=5)

  1 =>
    array (size=5)
      'id' => int 17
      'project_id' => string '37' (length=2)
      'description' => string 'Drums' (length=5)
      'qty' => int 889
      'uom' => string 'Drum' (length=4)

  2 =>
    array (size=5)
      'id' => int 13
      'project_id' => string '37' (length=2)
      'description' => string 'Bump' (length=4)
      'qty' => int 76
      'uom' => string 'Units' (length=5)

$array2

array (size=2)
  0 =>
    array (size=3)
      'id' => int 17
      'qty' => int 800
  1 =>
    array (size=3)
      'id' => int 16
      'qty' => int 87

我需要一些帮助:

  • 通过id合并上面的数组并减去qty values
  • 检查qty values 是否小于或等于0 不包含在$result 中。

所以最终的$result 将是:

array (size=2)
  0 =>
    array (size=5)
      'id' => int 17
      'project_id' => string '37' (length=2)
      'description' => string 'Drums' (length=5)
      'qty' => int 89
      'uom' => string 'Drum' (length=4)

  1 =>
    array (size=5)
      'id' => int 13
      'project_id' => string '37' (length=2)
      'description' => string 'Bump' (length=4)
      'qty' => int 76
      'uom' => string 'Units' (length=5)

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 嗨,你试过什么?
  • 与数组 2 相比,数组 1 的值是否相等?数组 1 有 3,数组 2 有 2,数据也是这样吗?
  • @IndigoIdentity 抱歉,如果不能包括我所做的,因为我没有尝试任何方法来解决这个问题。

标签: php arrays


【解决方案1】:

试试这个:

foreach($array1 as $a) {
    $match = false;
    foreach($array2 as $b) {
        if ($a['id'] == $b['id']) {
            $match = true;
            if (($a['qty'] - $b['qty']) > 0) {
                $a['qty'] -= $b['qty'];
                $result[] = $a;
                break;
            }
        }
    }
    if(!$match) $result[] = $a; 
}

【讨论】:

  • 我尝试了 4 个多小时来解决这个问题,感谢您的帮助。
猜你喜欢
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
相关资源
最近更新 更多