Foreach循环和引用

时间:2014-02-04 15:08:03

标签: php reference foreach

在以下循环中:

foreach( $email_field_arrays as $key => $array_of_emails ) {
    if( ! empty( $array_of_emails ) ){
        foreach( $array_of_emails as $i => $email ) {
            $sanitized_email = sanitize_email( trim( $email ) );
            $email_field_arrays[$key][$i] = $sanitized_email;
        }
    }
}

我如何使用'& $ ...'参考运算符,以便我不必包含此行:

$email_field_arrays[$key][$i] = $sanitized_email;

更新数组中的值?

我在互联网上搜索过引用的工作方式,但我似乎无法理解它们,而不是在循环或函数参数的上下文中。

我意识到这个问题与WordPress没有明确相关,但我相信我可能是唯一一个采用“漫长路线”来实现数组中数据卫生的人,他们的代码也可以得到改善。

非常感谢

1 个答案:

答案 0 :(得分:2)

您希望了解reference operator [&]:

foreach( $email_field_arrays as $key => &$array_of_emails ) {
    if( ! empty( $array_of_emails ) ){
        foreach( $array_of_emails as $i => &$email ) {
            $email = sanitize_email( trim( $email ) );
        }
    }
}

一般来说:

foreach($array as $key => &$value){

  $value = someFunction();

}

现在$value的每个$array都会更新到位。