首页 > 解决方案 > 通过切片从数组中返回结果的子集

问题描述

我正在从 API 获取一些数据。有 100 个结果,在页面的不同部分使用不同的结果。对于这个特定的部分,我只想渲染其中 10 个的子集。

到目前为止,我正在使用 foreach 循环初始数据并从指定键中提取所有值,然后填充一个数组。然后我想获取数组的一部分,然后对其进行迭代,只选择前 10 个元素。这些将是回显到页面的内容。

else {
    foreach($responseResult as $subject) {
        $uses = array($subject['subject']);
    }
    $uses = array_slice($uses, 0, 10);
    foreach($uses as $use) {
        echo "<tr><th scope='row'></th><td><a href='#'>{$use}</a></td></tr>";
    }
}

这目前不会在页面上产生任何内容。错误日志显示数组到字符串的转换,以及无效的 foreach 参数。我知道问题是什么,我只是不知道如何纠正它。#代码疲劳

标签: php

解决方案


您不断地设置$uses为单个项目的数组。创建一个空白数组并在进行时添加项目...

$uses = array();
foreach($responseResult as $subject) {
    $uses[] = $subject['subject'];
}

您可以简化此操作以提取元素,array_column()而不是使用(取决于 PHP 版本)...

$uses = array_column($responseResult, "subject");

推荐阅读