1

这对于带有简单 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 变量。

那么,循环访问关联的更好方法是什么?

4

2 回答 2

3

你可以试试:

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

print_r($b);

请参阅以下链接以获取说明:http array_keys: //php.net/manual/en/function.array-keys.php

于 2012-06-27T14:39:08.567 回答
2

不确定这是否是您想要的,但这里有:

foreach(array_keys($b) as $k) $b[$k] = 'your_face';
于 2012-06-27T14:40:18.190 回答