foreach( $notZeroValue as $cardSetPosition => $timesChosen){
echo $groupValue;
$notZeroValue[$cardSetPosition + ($groupValue*100)] = $notZeroValue[$cardSetPosition];
unset ($notZeroValue[$cardSetPosition]);
}
输出为0000
(正确,因为$notZeroValue
有四个元素,每个元素$groupValue = 0
)
我知道必须有新手错误,因为将*100
更改为+100
会产生关键值101
,102
,103
,104
print_r($notZeroValue); //output = array()
答案 0 :(得分:3)
$groupValue
等于0
,您获得了正确的结果,因为
$notZeroValue[$cardSetPosition + ($groupValue*100)] = $notZeroValue[$cardSetPosition];
变为
$notZeroValue[$cardSetPosition] = $notZeroValue[$cardSetPosition];
用自己覆盖数组值。
接下来,从数组中删除元素。
所以最后数组将为空。
但是当您将*
更改为+
且$groupValue
仍然位于0
时:
$notZeroValue[$cardSetPosition + ($groupValue+100)] = $notZeroValue[$cardSetPosition];
你不会覆盖数组值,而是创建新的键/值对,其中键比旧键多100个。接下来,从数组中删除旧键/值。所以最后你有4个新的键/值对。