这
很容易用一个简单的for语句来处理常规数组。例如:
$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变量。
那么,循环访问协会的更好方法是什么?
你可以试试:
foreach(array_keys($b) as $k) {
$b[$k] = 'your_face';
}
print_r($b);
有关array_keys
的解释,请参阅以下链接 http://php.net/manual/en/function.array-keys.php:
不确定这是否是你想要的,但这里是:
foreach(array_keys($b) as $k) $b[$k] = 'your_face';