1

我有一个 mySQL 查询,它转储到一个数组中,经过排序然后显示,效果很好。

我的问题是我想更新这些值,重新排序并显示。我已经能够更新这些值,但它在同一个 for 循环中,所以它不会重新排序。所以然后我关闭循环并重新排序,但它不会保存我在第一个循环中所做的更新。非常感谢您的帮助。

foreach ($arr as $mks){
if ($mks['Column1']==$Var) {$mks['Column2'] = $mks['Column2'] + 1;
}

我的排序代码

foreach ($arr as $mks){
    echo $mks['Column1'] . ", " . $mks['Column2'] . "<br>";
}

如何让它正确地重新保存到我的数组中?!我早上大部分时间都在谷歌上搜索这个,但导致了挫败感。

4

3 回答 3

0

我认为这是你需要的:

foreach ($arr as $key => $mks){
    if ($mks[$key] == $Var) {
        $arr[$key] = $mks+1;
    }
}

现在,$arr将包含修改后的数组,您可以根据需要进一步使用/修改它。

于 2013-10-31T18:21:06.140 回答
0

我没有看到任何“排序代码”,但您可以尝试在 foreach(s) 中使用引用“&”而不是复制变量:

foreach($arr as & $mks){
...
}

它不会复制您的单元格,而是为您提供参考,并且对其进行的所有修改都将保存在数组中。

于 2013-10-31T18:21:53.783 回答
0

尝试像这样更改您的数组

foreach ($arr as $key => $mks){
    if ($mks['Column1']==$Var) {$arr[$key]['Column2'] = $mks['Column2'] + 1;
}
于 2013-10-31T18:21:54.640 回答