2013-10-31 136 views
1

我有一个mySQL查询,转储到数组中,进行排序然后显示,并且完美地工作。更新和排序多维PHP阵列

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

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

我排序的代码

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

我如何获得这个重新保存到我的数组正确?我试过在早上的大部分时间使用Google搜索,但已经导致挫败感。

+0

你保存的更改到一个新的数组,然后回显新阵? – Jim

回答

0

我觉得这是你所需要的:

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

现在,$arr将包含修改后的数组,你可以使用/进一步修改,因为你需要。

+0

谢谢你,这个答案的变化是对我有用。我结束了: foreach($ arr as $ key => $ mks){ if($ mks ['Column1'] == $ Var){$ arr [$ key] ['Column2'] = $ mks ['Column2'] + $ 1;} – user2788110

0

我没有看到任何“分发代码”,但你可以尝试使用引用“&”,而不是拷贝到您的foreach(S)瓦尔:

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

与其模仿你的细胞就会来给你一个参考,并在它上面做的每一个修改将在数组中保存

0

试着改变你的阵列是这样,而不是

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