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

时间:2009-07-09 09:55:08

标签: php array-push

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

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

test("hello");

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

5 个答案:

答案 0 :(得分:2)

while (count($_SESSION['myarray'] > 10)
{
    array_shift($_SESSION['myarray']);
}

答案 1 :(得分:1)

您可以使用array_shift

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

答案 2 :(得分:1)

我会这样做:

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个值。

答案 3 :(得分:0)

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

应该这样做。

答案 4 :(得分:0)

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);
}