You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问两个存储数组的全局变量并按指定格式输出内容?

问题解决:PHP生成器输出数组元素未达预期

你的代码里,生成器直接yield了整个数组变量,当你echo $items时,PHP会将数组转换为字符串"Array"输出,自然得不到预期的"12345abcde"。以下是两种可行的修复方案:

方案一:修改生成器,逐个yield数组元素

这种方式让生成器每次返回单个元素,直接echo就能拼接出目标字符串:

$number = [1,2,3,4,5];
$str = ["a", "b", "c", "d", "e"];

function twoMassive(){
    $names = ["number", "str"];
  
    foreach($names as $items){
        // 遍历全局数组的每个元素,逐个yield
        foreach($GLOBALS[$items] as $element){
            yield $element;
        }
    }
};

foreach(twoMassive() as $items){
    echo $items;
}

方案二:保持生成器不变,消费时处理数组

如果需要生成器返回完整数组,可在遍历生成器结果时,用implode()将数组转为字符串输出:

$number = [1,2,3,4,5];
$str = ["a", "b", "c", "d", "e"];

function twoMassive(){
    $names = ["number", "str"];
  
    foreach($names as $items){
        yield $GLOBALS[$items];
    }
};

foreach(twoMassive() as $items){
    // 将数组元素拼接成字符串输出
    echo implode('', $items);
}

内容的提问来源于stack exchange,提问作者Ice time

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:01:23