<?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
答案 0 :(得分:3)
&
允许使用引用修改数组中的元素。如果不使用引用,要修改值,则必须使用数组键。
foreach ( $data as &$element ) {
$element = $element + 'foo';
}
等于
foreach ( $data as $key => $element ) {
$data[$key] = $element + 'foo';
}