【问题标题】:Outputting A Multidimensional Array As A String将多维数组输出为字符串
【发布时间】:2023-03-27 05:12:01
【问题描述】:

我尝试了implode()array_column() 和其他几个,但由于某种原因,我无法获得正确的输出。

简而言之,如何将这个数组输出为字符串?这实际上是一个输出,将进入表格内的行,它基于 API。

代码:

<td><?php
    $desc1 = file_get_contents("https://api.iextrading.com/1.0/stock/market/batch?symbols=$symbol[$x]&types=news&filter=headline");  
    $desc1 = json_decode($desc1,TRUE); 
    foreach($desc1 as $key111 => $des1) {
        echo ($des1['news']);
    }   
?></td>

给定表格行中var_dump() 的示例输出:

注意:E:\XAMPP...中的数组到字符串转换在线(回声线)

Arrayarray(1) {
    ["news"]=> array(10) { 
        [0]=> array(1) { 
            ["headline"]=> string(92) "Facebook VP says Russian meddling aimed to divide America and it's working 'incredibly well'"
        } 
        [1]=> array(1) { 
            ["headline"]=> string(66) "In wake of indictments, Facebook doubling security staff to 20,000"
        }

【问题讨论】:

    标签: php arrays string output


    【解决方案1】:

    你可以像下面这样使用array_column

    $array = [
        "news" => [ 
            [
                "headline" => "Facebook VP says Russian meddling aimed to divide America and it's working 'incredibly well'",
            ],
            [
                "headline" => "In wake of indictments, Facebook doubling security staff to 20,000"
            ]
        ]
    ];
    
    echo implode(PHP_EOL, array_column($array['news'], 'headline'));
    

    这里是the demo

    当然,在 HTML 中,您可以使用 &lt;br/&gt; 代替 PHP_EOL,或者任意格式化数据。

    【讨论】:

    • 事情是这样的,内容是由 API 动态生成的。上面的内容只是作为输出示例发布的——还有更多内容。所以本质上,我需要做你所做的,但如果你知道我的意思,它必须自动完成而不是手动输入输出。感谢您的帮助!
    • @Frenzyy,通常 API 的构建方式是它们以一种确认的格式返回数据。为了举例,我使用了来自 var_dump 的数据。但这没关系,因为数组格式不应该因调用而改变。
    • @Frenzyy,哦,我明白你的意思了。如果您只想复制/粘贴,可以将$array 更改为$des1;)
    • @Frenzyy, array_column 将新索引作为第三个参数。因此,您最终将得到一个包含相同值的数组,但将使用 'source' 列的值而不是数字索引。但是由于implode 仅对值进行操作,因此您最终会得到相同的结果。试试this
    • @Frenzyy,请查看上面评论中的链接(点击“这个”字)。您可以使用&lt;br/&gt; 代替PHP_EOLimplode('&lt;br/&gt;', array_column($array['news'], 'headline'));
    【解决方案2】:

    每个 $des1 中都有一个数组,因此请尝试访问内容,例如:

    foreach($desc1['news'] as $key111 => $des1) {
       echo $des1["headline"];
     } 
    

    【讨论】:

    • 感谢您的快速回复。不幸的是,这不是它-“注意:未定义的索引:标题”
    • 答案已更新 .. 尝试访问 foreach 中的 desc1['new'] 和 foreach 中的 $des1["headline"]
    • 注意:未定义索引:E:\XAMPP\ 中的新闻在线警告:为第 224 行 E:\XAMPP\ 中的 foreach() 提供的参数无效
    • 尝试显示确切的 var_dump($desc1) 因为查看您的样本应该是一个数组。
    • 我是这么认为的,没问题,我确实使用“新闻”尝试过。无论哪种方式,请在上面回答,但感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 2012-11-17
    相关资源
    最近更新 更多