使用相同的date键值更新数组元素

时间:2018-06-05 06:37:55

标签: php arrays

非常感谢你的时间。我正在开发一个PHP项目,我希望更新数组的值。让我举例说明你可以更好地理解它。

第一个数组看起来像

array(30) {

      [10]=>
      array(2) {
        ["date"]=>
        string(6) "May 17"
        ["value"]=>
        int(0)
      }
      [11]=>
      array(2) {
        ["date"]=>
        string(6) "May 18"
        ["value"]=>
        int(0)
      }
      [13]=>
      array(2) {
        ["date"]=>
        string(6) "May 20"
        ["value"]=>
        int(0)
      }
      [14]=>
      array(2) {
        ["date"]=>
        string(6) "May 21"
        ["value"]=>
        int(0)
      }
}

第二个数组看起来像

array(3) {
  [0]=>
  array(2) {
    ["date"]=>
    string(6) "May 17"
    ["value"]=>
    string(3) "821"
  }
  [1]=>
  array(2) {
    ["date"]=>
    string(6) "May 17"
    ["value"]=>
    string(3) "822"
  }
  [2]=>
  array(2) {
    ["date"]=>
    string(6) "May 21"
    ["value"]=>
    string(3) "830"
  }
}

现在我想要在第一个数组中替换May 17和May 21的值。所以它可能看起来像

array(30) {

  [9]=>
  array(2) {
    ["date"]=>
    string(6) "May 16"
    ["value"]=>
    int(0)
  }
  [10]=>
  array(2) {
   ["date"]=>
    string(6) "May 17"
    ["value"]=>
    string(3) "821"
  }
  [11]=>
  array(2) {
    ["date"]=>
    string(6) "May 18"
    ["value"]=>
    int(0)
  }
  [12]=>
  array(2) {
    ["date"]=>
    string(6) "May 19"
    ["value"]=>
    int(0)
  }
  [13]=>
  array(2) {
    ["date"]=>
    string(6) "May 20"
    ["value"]=>
    int(0)
  }
  [14]=>
  array(2) {
     ["date"]=>
    string(6) "May 21"
    ["value"]=>
    string(3) "830"
  }

如果我可以在5月17日显示2而不是实际值,那将是很好的,因为在第二个数组中有5个17出现。

2 个答案:

答案 0 :(得分:1)

您可以比较两个数组中的日期,如下所示,并在if case中添加所需的值。

 foreach ($array1 as $key => $value) {
        foreach ($array2 as $key2 => $arr) {
            if($value["date"] == $arr["date"]) {
                //add the desired values here like this, this will add the $arr['value'] to the first array
                $array1[$key]["value"] = $arr["value"]

            }
        }
    }

希望它能解决你的问题。

答案 1 :(得分:0)

你可以迭代第一个数组,在foreach循环中传递它作为参考,并检查第二个数组中的常用值,如下所示

  foreach($array1 as &$arr)
  {
        foreach ($array2 as $subarray) {
            if ($subarray['date'] == $arr['date'] ) {
            $arr['value'] = $subarray['value'];
            print_r("adsfg");
            }
        }
  }

你会得到你想要的结果。