Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php基于具有相同键的其他数组更新数组的值_Php_Arrays_For Loop - Fatal编程技术网

php基于具有相同键的其他数组更新数组的值

php基于具有相同键的其他数组更新数组的值,php,arrays,for-loop,Php,Arrays,For Loop,我有以下情况: $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'=&g

我有以下情况:

$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);
我想用进程数组的值更新starter数组的值,例如,在最后,我应该:

$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:我知道这些要求很奇怪,但这就是我被要求做的…

你需要把
$key
放在括号里,而不是
$value

或者,您可以执行以下操作:

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

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

或者,您可以执行以下操作:

foreach ($starterArray as $key => &$value) {
    $value++; /* put here whatever formula you want */
}
你就快到了:-

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;
}
你就快到了:-

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;
}

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