簡體   English   中英

PHP使用相同的鍵基於其他數組更新數組的值

[英]php update values of an array based on other array with the same key

我有以下情況:

$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;來實現$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 */
}
foreach ($starterArray as $key => $value) {
    $starterArray[$key] = $value+1;
    // or $starterArray[$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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM