【问题标题】:php update values of an array based on other array with the same keyphp 根据具有相同键的其他数组更新数组的值
【发布时间】:2013-06-14 21:45:59
【问题描述】:

我有以下场景:

$starterArray = array ('192.168.3.41:8013'=>0,'192.168.3.41:8023'=>0,'192.168.3.41:8033'=>0);

在要求中我有另一个数组来计算应用程序的一些事件,这个数组使用与我的第一个数组相同的键,但值可以改变),所以最后我可以有类似的东西:

$processArray = array ('192.168.3.41:8013'=>3,'192.168.3.41:8023'=>5,'192.168.3.41:8033'=>7);

我想用进程数组的值更新我的起始数组的值,例如,最后,我应该:

$starterArray = array ('192.168.3.41:8013'=>3,'192.168.3.41:8023'=>5,'192.168.3.41:8033'=>7);

我知道这可以通过使用$starterArray = $processArray;来实现

然后在某些时候,我需要将一些单位与数组的值相加,例如 +1 或 +2:

应该像下面这样?

foreach ($starterArray as $key => $value) {
    $starterArray[$value] = $starterArray[$value]+1;
}

然后,对于我的进程数组,我需要将值设置为 0

foreach ($processArray as $key => $value) {
    $processArray[$value] = 0;
}

这是我尝试过的,但它不起作用,如果有人可以帮助我,我会非常感激它。提前致谢。

PD:我知道这些要求很奇怪,但这就是我被要求做的……

【问题讨论】:

  • PHP 手册中有foreach 的示例应该可以帮助您。特别是,您使用的是[$value] 而不是[$key]

标签: php arrays for-loop


【解决方案1】:

你快到了:-

foreach ($processArray as $key => $value) {
    $starterArray[$key] = $value +1;
}

然后:-

foreach ($processArray as $key => $value) {
    $processArray[$key] = 0;
}

但是,您可以在一个循环中完成所有操作:-

foreach ($processArray as $key => $value) {
    $starterArray[$key] = $value +1;
    $processArray[$key] = 0;
}

【讨论】:

    【解决方案2】:

    您需要将$key 放在括号中,而不是$value

    或者,你可以这样做:

    foreach ($starterArray as $key => &$value) {
        $value++; /* put here whatever formula you want */
    }
    

    【讨论】:

      【解决方案3】:
      foreach ($starterArray as $key => $value) {
          $starterArray[$key] = $value+1;
          // or $starterArray[$key] = 0;
      }
      

      【讨论】:

        猜你喜欢
        • 2015-01-04
        • 2019-05-01
        • 2014-03-12
        • 1970-01-01
        • 2016-07-29
        • 2022-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多