3
<?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,しかし、なぜ で も使用するの$vegetablesかわかりません , 誰かが私に説明できますか? ありがとう。&foreach

foreach($processArr as &$array)
        foreach($array as &$item)
4

1 に答える 1

3

&foreach では、参照を使用して配列内の要素を変更できます。参照を使用しない場合、値を変更するには、配列キーを使用する必要があります。

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

等しい

foreach ( $data as $key => $element ) {
  $data[$key] = $element + 'foo';
}
于 2013-08-16T09:19:08.563 に答える