在php中更新多维数组

时间:2013-07-02 13:52:42

标签: php

您好我正在尝试更新多维数组中的值,这个数据无效,任何人都可以告诉我下面代码中的问题。

<?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 个答案:

答案 0 :(得分:3)

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

这只是遍历值,你无法更新它们。您需要使用引用,以便更新阵列。

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分: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);

答案 3 :(得分:0)

您可以像这样设置值5:

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