对于带有简单for语句的常规数组,这很容易做到。 EG:
$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变量。
那么,循环关联的更好方法是什么?
答案 0 :(得分:3)
你可以尝试:
foreach(array_keys($b) as $k) {
$b[$k] = 'your_face';
}
print_r($b);
有关array_keys
的解释,请参阅以下链接:http://php.net/manual/en/function.array-keys.php
答案 1 :(得分:2)
不确定这是不是你想要的,但这里是:
foreach(array_keys($b) as $k) $b[$k] = 'your_face';