php:使用参考数组的问题

时间:2013-08-16 09:16:14

标签: php

<?php 
$fruits = array(' appLE', 'pear3', 'banana--');
$vegetables = array('pea', 'broccoli   ');
$processArr = array(&$fruits, &$vegetables);
foreach($processArr as &$array)
    foreach($array as &$item)
    {
        $item = preg_replace('/[^a-z]/i', '', $item);
        $item = ucwords(strtolower($item));
    }
echo '<pre>';
print_r($fruits);
print_r($vegetables);

结果:

Array
(
    [0] => Apple
    [1] => Pear
    [2] => Banana
)
Array
(
    [0] => Pea
    [1] => Broccoli
)

问题:

我知道这一个$processArr = array(&$fruits, &$vegetables);,意味着$fruits的传递引用,$vegetables,如果$processArr发生了更改,它也会更改$fruits,{{1但是我不明白为什么在$vegetables中使用&,有人可以向我解释一下吗?感谢。

foreach

1 个答案:

答案 0 :(得分:3)

foreach中的

&允许使用引用修改数组中的元素。如果不使用引用,要修改值,则必须使用数组键。

foreach ( $data as &$element ) {
  $element = $element + 'foo';
}

等于

foreach ( $data as $key => $element ) {
  $data[$key] = $element + 'foo';
}