更新内部数组中的值

时间:2012-02-10 03:20:32

标签: php arrays

这可能是一个非常简单的问题,抱歉我缺乏知识,而且我的愚蠢......

将项目添加到数组后,

$List[1] = array(
    'Id' => 1,
    'Text'=> 'First Value'
);

我需要更改内部数组中项目的值,

foreach ($List as $item)
{
    $item['Text'] = 'Second Value';
}

但当我检查价值保持不变时

foreach ($List as $item)
{
    echo $item['Text']; //prints 'First Value'
}

如何将值更新为“第二个值”?

3 个答案:

答案 0 :(得分:2)

您可以直接设置:

foreach ($List as $key => $item)
{
    $List[$key]['Text'] = 'Second Value';
}

或通过引用设置:

foreach ($List as &$item)
{
    $item['Text'] = 'Second Value';
}

答案 1 :(得分:1)

可能有一种PHP-ish神秘的Perl方式来访问该值,但我发现循环遍历数组并直接设置值更简单。

for($i = 0; $i < count($List); $i++)
{
    $List[$i] = 'Second Value';
}

编辑:好奇心让我变得更好。 http://www.php.net/manual/en/control-structures.foreach.php

foreach($List as &$item)
{
    $item = 'Second Value';
}

注意&导致$item被引用而不是值使用。

答案 2 :(得分:1)

foreach ($List as &$item)
{
    $item['Text'] = 'Second Value';
}