2012-02-10 5 views
0

Это может быть очень простой вопрос, извините о моем отсутствии knwoledge и моей глупости ...значение обновления во внутреннем массиве

После добавления элементов в массиве,

$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' 
} 

Как обновить значение до «Второго значения»?

+0

Это изменит весь элемент массива, а не только элемент. –

ответ

2

Вы можете установить его непосредственно:

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

Или установить его по ссылке:

foreach ($List as &$item) 
{ 
    $item['Text'] = 'Second Value'; 
} 
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, которые будут использоваться в качестве ссылки, а не по значению.

Смежные вопросы