-1

您好,我正在尝试更新一个不起作用的多维数组中的值,任何人都可以告诉我以下代码中的问题是什么。

<?php
$array_m= array();
array_push($array_m,array('md5'=>'a','count'=>1));
array_push($array_m,array('md5'=>'b','count'=>1));

foreach ($array_m as $key=>$val) 
{

    if($val['md5']=='a') {
    $val['count'] =5;
    break;
    }
}
print_r($array_m);
4

4 回答 4

3
foreach ($array_m as $key=>$val)

这只是遍历值,您无法更新它们。您需要使用引用,因此您可以更新数组。

foreach ($array_m as $key=>&$val)

请注意&, 这将使其成为参考。

于 2013-07-02T13:55:46.017 回答
2

你有,$key所以你可以使用它来引用数组:

if($val['md5']=='a') {
    $array_m[$key]['count'] = 5;
    break;
}
于 2013-07-02T13:54:59.187 回答
0

您可以像这样设置 5 的值:

$array_m[$key]['count'] = 5;

于 2013-07-02T13:57:48.717 回答
0

你应该改变你的代码,如下所示,

<?php
$array_m= array();
$array_m[] = array('md5'=>'a','count'=>1);
$array_m[] = array('md5'=>'b','count'=>1);

 foreach ($array_m as $key=>$val) 
 {

     if($val['md5']=='a') {
     $val['count'] =5;
    break;
    }
}
print_r($array_m);
于 2013-07-02T13:55:38.017 回答