PHP的foreach:将循环结果中的每个值放入一个变量中

9

我认为这可能很简单,但我理解起来有困难!我该如何将每个循环结果仅放入一个变量中?例如,

$employeeAges;
$employeeAges["Lisa"] = "28";
$employeeAges["Jack"] = "16";
$employeeAges["Ryan"] = "35";
$employeeAges["Rachel"] = "46";
$employeeAges["Grace"] = "34";

foreach( $employeeAges as $key => $value){
    $string = $value.',';
}

echo $string; 
// result 34,
// but I want to get - 28,16,35,46,34, - as the result

非常感谢,Lau
9个回答

25

你如何移除最后一个逗号“,”? - utdev

9

考虑在这种特定情况下使用implode

$string = implode(',', $employeeAges);

7

您也可以尝试

$string = '';
foreach( $employeeAges as $value){
    $string .= $value.',';
}

我试过了,它有效。

3
foreach( $employeeAges as $key => $value){
    $string .= $value.',';
}

您每次循环都在重置字符串变量。上述操作会将$value连接到每个循环迭代的$string中。

2

那这个怎么样?

$string = "";
foreach( $employeeAges as $key => $value){
    $string .= $value.',';
}

您每次重置变量,这会从空字符串开始,并每次附加一些内容。但是,可能有更好的方法来执行此类任务,比如在这种情况下使用implode

2

尝试

$string = '';
foreach( $employeeAges as $key => $value){
    $string .= $value.',';
}

使用 $string = $value. ','; 的话,每次都会覆盖 $string 的值,因此最终只会得到最后一个值。

1

输入:

    $array = [1,2,3,4]

保存所有数据在一个字符串中:

将所有数据保存在一个字符串中:

    $string = "";
    foreach( $array as $key => $value){
        $string .= $value.',';
    }

输出:

    $string = '1,2,3,4,'

移除最后一个逗号

    $string =  rtrim($string, ',');

Output:

    $string = '1,2,3,4'

关于更多信息:

连接字符串;

去除字符串末尾空格


1
尝试将此echo放在then的{}内,就可以解决问题。
    $employeeAges;
    $employeeAges["Lisa"] = "28";
    $employeeAges["Jack"] = "16";
    $employeeAges["Ryan"] = "35";
    $employeeAges["Rachel"] = "46";
    $employeeAges["Grace"] = "34";

    foreach( $employeeAges as $key => $value){
        $string = $value.',';
        echo $string; 

    }

    // result - 28,16,35,46,34, - as the result

或其他方式
foreach( $employeeAges as $key => $value){
            $string .= $value.',';

        }
            echo $string; 

1
$string .= $value.',';

使用连接,在等号前面加上一个点。

您可以使用这种冗长的语法:

$string = $string . $value . ',';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接