【问题标题】:Updating and Sorting a Multidimensional PHP Array更新和排序多维 PHP 数组
【发布时间】:2013-11-11 21:23:17
【问题描述】:

我有一个 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>";
}

我如何让它正确地重新保存到我的数组中?!我早上大部分时间都在谷歌上搜索这个,但结果很沮丧。

【问题讨论】:

  • 您是否已将更改保存到新数组中,然后回显新数组?

标签: php mysql arrays sorting multidimensional-array


【解决方案1】:

我认为这是你需要的:

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

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

【讨论】:

  • 谢谢,这个答案的一个变体对我有用。我结束了: foreach ($arr as $key => $mks){ if ($mks['Column1']==$Var) {$arr[$key]['Column2'] = $mks['Column2' ] + $1;}
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    尝试像这样更改您的数组

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      相关资源
      最近更新 更多