通过切片从数组返回结果的子集

时间:2019-01-20 17:03:24

标签: php

我正在从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参数。我知道问题出在哪里,我看不出来如何解决。 #CodeFatigue

1 个答案:

答案 0 :(得分:0)

您正在不断将$uses设置为单个项目的数组。创建一个空白数组,然后添加项目...

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

您也许可以简化此操作,以改为使用array_column()提取元素(取决于PHP版本)...

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