使foreach数组值在循环外可见

时间:2014-05-02 05:54:41

标签: php arrays foreach

我是PHP的新手,想问一下如何在foreach之外的所有数组值可见循环。我的代码是这样的:

$reference = $_POST['ref'];
$userDoc = $_POST['userDoc'];

$doc = array_filter($userDoc);
$ref = array_filter($reference);

foreach($doc as $a=> $value){
    $docs = $doc[$a];
    $refe = $ref[$a];
    echo $docs . $refe; // Result: all values in the array
}
echo $docs . $refe; // Result: only the last value in array

循环内的结果是 a1b2c3
虽然循环外只有 c3

请注意, a1b2c3 值取决于用户提供的输入值。我想让所有值都可见,以便更新数据库中的1行 先谢谢你。

2 个答案:

答案 0 :(得分:0)

foreach($doc as $a=> $value){
$docs = $doc[$a];
$refe = $ref[$a];
echo $docs . $refe; //echo all values in the array
}

此处,每次重新声明$docs$refe时。您需要使用点运算符将新值附加到现有变量,如:

foreach($doc as $a=> $value){
 $docs.=$doc[$a];
 $refe.=$ref[$a];
}
echo $docs. $refe;

答案 1 :(得分:0)

如果你只想要一个类似a1b2c3的字符串,你可以这样做:

foreach($doc as $a => $value){
    $output .= $doc[$a] . $ref[$a]
}
echo $output; //echo outside of the loop