如何在数组中保留一定数量的元素?

发布于 2024-07-26 07:31:43 字数 302 浏览 5 评论 0原文

如何在数组中保留一定数量的元素?

function test($var)
{
    if(is_array($_SESSION['myarray']) {
        array_push($_SESSION['myarray'], $var);
    }
}

test("hello");

我只想在数组 $a 中保留 10 个元素。 因此,当我调用 test($var) 时,它应该将此值推送到数组,但通过从数组顶部删除一些元素来将数字保持为 10。

How do I keep a certain number of elements in an array?

function test($var)
{
    if(is_array($_SESSION['myarray']) {
        array_push($_SESSION['myarray'], $var);
    }
}

test("hello");

I just want to keep 10 elements in array $a. So when I call test($var) it should push this value to array but keep the number to 10 by removing some elements from top of the array.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

无可置疑 2024-08-02 07:31:43
while (count($_SESSION['myarray'] > 10)
{
    array_shift($_SESSION['myarray']);
}
while (count($_SESSION['myarray'] > 10)
{
    array_shift($_SESSION['myarray']);
}
二货你真萌 2024-08-02 07:31:43

我会这样做:

function test($var) {
    if (is_array($_SESSION['myarray']) {
        array_push($_SESSION['myarray'], $var);
        if (count($_SESSION['myarray']) > 10) {
            $_SESSION['myarray'] = array_slice($_SESSION['myarray'], -10);
        }
    }
}

如果添加新值后数组中的值超过 10 个,则仅取最后 10 个值。

I would do this:

function test($var) {
    if (is_array($_SESSION['myarray']) {
        array_push($_SESSION['myarray'], $var);
        if (count($_SESSION['myarray']) > 10) {
            $_SESSION['myarray'] = array_slice($_SESSION['myarray'], -10);
        }
    }
}

If there a more than 10 values in the array after adding the new one, take just the last 10 values.

我的痛♀有谁懂 2024-08-02 07:31:43

您可以使用 array_shift

if(count($_SESSION['myarray']) == 11))
    array_shift($_SESSION['myarray']);

You can use array_shift

if(count($_SESSION['myarray']) == 11))
    array_shift($_SESSION['myarray']);
旧人九事 2024-08-02 07:31:43
if(count($_SESSION["myarray"]) == 10)
{
 $_SESSION["myarray"][9] = $var;
}
else
{
 $_SESSION["myarray"][] = $var
}

应该这样做。

if(count($_SESSION["myarray"]) == 10)
{
 $_SESSION["myarray"][9] = $var;
}
else
{
 $_SESSION["myarray"][] = $var
}

That should do.

極樂鬼 2024-08-02 07:31:43
function array_10 (&$data, $value)
{
    if (!is_array($data)) {
        $data = array();
    }

    $count = array_push($data, $value);

    if ($count > 10) {
        array_shift($data);
    }
}

用法:

$data = array();

for ($i = 1; $i <= 15; $i++) {
    array_10($data, $i);
    print_r($data);
}
function array_10 (&$data, $value)
{
    if (!is_array($data)) {
        $data = array();
    }

    $count = array_push($data, $value);

    if ($count > 10) {
        array_shift($data);
    }
}

Usage:

$data = array();

for ($i = 1; $i <= 15; $i++) {
    array_10($data, $i);
    print_r($data);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文