2012-06-27 135 views
1

這對使用簡單的for語句的常規數組很容易。 EG:PHP如何通過assoc數組循環而不復制變量?

$b= array('A','B','C'); 
    $s=sizeof($b); 
    for ($i=0; $i <$s ; $i++) $b[$i]='your_face'; 
    print_r($b); 

但是,如果我使用assoc數組,我似乎沒有任何簡單的方法來做到這一點。我當然可以使用foreach循環,但它實際上是複製$ value變量而不是返回指向實際數組實體的指針。 EG,這是不行的:

$b= array('A'=>'A','B'=>'B','C'=>'C'); 
    foreach ($b as $v) $v='your_face'; 
    print_r($b); 

當然,我們可以有一些愚蠢的想法是這樣的:

$b= array('A'=>'A','B'=>'B','C'=>'C'); 
    foreach ($b as $k => $v) $b[$k]='your_face'; 
    print_r($b); 

但是這將是一個尷尬的解決方案,因爲它會重複地重新$ V變量,是沒用過。

那麼,循環assoc的更好方法是什麼?

回答

2

不知道這是你想要的,但這裏有雲:

foreach(array_keys($b) as $k) $b[$k] = 'your_face';