【问题标题】:stay with the last 15 elements of an array [duplicate]保留数组的最后 15 个元素 [重复]
【发布时间】:2018-11-19 16:23:02
【问题描述】:

我在couchdb上有一个数据库,每个文档的结构略复杂,这里是一小部分:

   "category": {
      "1496805145": -1,
      "1497064141": -1,
      "1497150993": -1,
      "1497322542": -1,
      "1497487102": -1,
      "1497571701": -1,
      "1497657026": -1,
      "1497749178": -1,
      "1497920895": -1,
      "1498005644": -1,
      "1498091037": -1,
      "1498179039": -1,
      "1502183511": -1,
      "1502309289": -1,
      "1502395763": -1,
      "1502482211": -1,
      "1502568580": -1,
      "1502655044": -1,
      "1502741651": -1,
      "1502827775": -1,
      "1502914685": -1

我之前有更多的值,这没有意义,所以我做了一个代码,将其限制为最多 15 个值。

            $keys = array_keys((array)$pro["sources"][$id]);
            if(count($keys)>15)
            {
                $keys = asort($keys);
                foreach($keys as $key)
                {
                    if(count($keys) <= 15) break; 
                    else 
                    {
                        unset($pro["sources"][$id][$key]);
                        unset($keys[$key]);
                    }
                }
            }

我的问题是有没有一个 php 函数说“保存我数组的最后 15 个元素,但删除所有其他元素”?

【问题讨论】:

  • 如果我理解正确,那么array_slice($array, -15)?

标签: php


【解决方案1】:

使用array_slice($a, -15, 15, true);,其中$a 是数组。

-15 告诉函数从末尾的 15 个元素开始。

15 告诉函数获取 15 个元素。

true 告诉函数也保留密钥,我假设你这样做。

如果不想保留密钥,可以使用array_slice($a, -15);,因为缺少第三个参数,所以会一直获取元素,直到到达最后一个(所以,15)

【讨论】:

  • 是的,但是在不保留密钥的情况下也可以。因为 false 是默认参数。
【解决方案2】:

我想你想要array_slice()。你给它一个偏移量和一个长度,它会将这些值作为一个数组返回。请参阅 PHP 文档:http://php.net/manual/en/function.array-slice.php

一个例子:

$truncatedArray = array_slice($pro, -15);

这将为您提供数组 $pro 的最后 15 个元素

【讨论】:

  • 最好在此处包含答案的基本部分并提供参考链接
  • @B001ᛦ 好吧,这是有道理的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 1970-01-01
  • 2021-03-14
  • 2019-06-21
相关资源
最近更新 更多