$array = array('lastname', 'email', 'phone');
如何为此阵列运行foreach
并将更新后的值写入其位置?
像:
foreach ($array as $item) {
// do something
// replace old value of this item with a new one
}
示例:
foreach ($array as $item) {
if (item == 'lastname')
$item = 'firstname';
// replace current $item's value with a 'firstname'
}
数组应该成为:
$array = array('firstname', 'email', 'phone');
答案 0 :(得分:4)
另一种方法是通过引用循环:
foreach ($array as &$value) {
$value = strtoupper($value);
}
unset($value);// <=== majorly important to NEVER forget this line after looping by reference...
答案 1 :(得分:2)
在您的示例中,如果您确切知道哪些键映射到lastname
,则foreach循环似乎是不必要的,但如果您需要,您仍然可以遍历这些值。有两种非常常见的方法:根据键设置值:
foreach ($array as $key => $value) {
if ($value == 'lastname') {
$array[$key] = 'firstname';
}
}
或(仅限PHP 5)使用引用:
foreach ($array as &$item) {
if ($item == 'lastname') {
$item = 'firstname';
}
}
// Clean up the reference variable
unset($item);
答案 2 :(得分:1)
你可以这样做:
foreach ($array as $key => $item) {
$array[$key] = "updated item";
}
答案 3 :(得分:1)
foreach ($array as $i => $value) {
if ($value == 'lastname')
$array[$i] = 'firstname';
}