0

特定の数の要素を配列に保持するにはどうすればよいですか?

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

test("hello");

array に 10 個の要素を保持したいだけです$a。したがって、呼び出すときに、test($var)この値を配列にプッシュする必要がありますが、配列の先頭からいくつかの要素を削除して、数値を 10 に保ちます。

4

5 に答える 5

2
while (count($_SESSION['myarray'] > 10)
{
    array_shift($_SESSION['myarray']);
}
于 2009-07-09T09:59:54.033 に答える
1

array_shift を使用できます

if(count($_SESSION['myarray']) == 11))
    array_shift($_SESSION['myarray']);
于 2009-07-09T09:59:46.063 に答える
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 個の値のみを取得します。

于 2009-07-09T10:02:04.857 に答える
0
if(count($_SESSION["myarray"]) == 10)
{
 $_SESSION["myarray"][9] = $var;
}
else
{
 $_SESSION["myarray"][] = $var
}

それはすべきです。

于 2009-07-09T09:59:08.497 に答える
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);
}
于 2009-07-09T12:18:48.560 に答える