【发布时间】:2017-09-02 23:01:25
【问题描述】:
我很难尝试更新数组中的值。我做了一个简单的例子来说明这一点:数组包含玩家的姓名和他们拥有的点数。在每一轮之后,我想像这样更新他们的积分:
(不工作)
$players = array (
array (
"id" => 0,
"name" => "John",
"points" => 0
),
array (
"id" => 1,
"name" => "Chris",
"points" => 0
),
array (
"id" => 2,
"name" => "Peter",
"points" => 0
),
array (
"id" => 3,
"name" => "Greg",
"points" => 0
),
);
$points0 = 10;
$points1 = 20;
$points2 = 30;
$points3 = 40;
$i = 0;
foreach ($players as $player) {
if ($player["id"] == $i) {
$player["points"] = ${"points".$i};
} $i++;
}
var_dump($players);
一定是一些愚蠢的东西,但我已经尝试了几个小时,但还是找不到。
感谢您的帮助!
【问题讨论】:
-
你调试过你的代码吗?查看压缩和赋值的区别operators
-
$player["points"] == ${"points".$i};你在这里比较,你想分配我相信$player["points"] = ${"points".$i};- 编辑:FIrst in ;-) -
您可能希望使用数组来表示点。
$points[0] = 10;$points[1]=20;等然后你可以做foreach($players as $player){ $player['points'] = $points[$player['id']]; } -
@Fred-ii- 在这种情况下,
{}周围的含义是什么(变量)?是以某种方式调用的,所以我可以阅读它吗? -
@AntonisTsimourtos 变量变量php.net/manual/en/language.variables.variable.php
标签: php arrays associative-array