PHP中如何将foreach循环的输出值存储到单个变量而非数组中
你原有的写法存在两个问题:
foreach语法本身没有返回值,无法直接赋值给变量echo会直接将内容输出到响应缓冲区,不会返回内容供变量存储
正确实现可以选以下两种方案:
方案1:直接字符串拼接
适合不想额外引入数组变量的场景
// 初始化变量为空字符串 $my_variable = ''; foreach ($orders as $order) { // 使用字符串拼接运算符 .= 追加内容 $my_variable .= get_post_meta( $order->get_id(), '_tracking_box', true ) . ', '; } // 可选:去除末尾多余的逗号和空格 $my_variable = rtrim($my_variable, ', ');
方案2:数组中转+implode拼接
无需手动处理末尾多余分隔符,代码更易维护
// 先把所有值存入临时数组 $tracking_box_arr = []; foreach ($orders as $order) { $tracking_box_arr[] = get_post_meta( $order->get_id(), '_tracking_box', true ); } // 直接用逗号拼接数组所有元素为字符串 $my_variable = implode(', ', $tracking_box_arr);
内容的提问来源于stack exchange,提问作者Dheeraj Kumar
相关产品推荐
相关产品推荐

