如何在数组中保留一定数量的元素?
function test($var)
{
if(is_array($_SESSION['myarray']) {
array_push($_SESSION['myarray'], $var);
}
}
test("hello");
我只想在 array 中保留 10 个元素$a
。因此,当我调用test($var)
它时,它应该将此值推送到数组,但通过从数组顶部删除一些元素来保持数字为 10。
如何在数组中保留一定数量的元素?
function test($var)
{
if(is_array($_SESSION['myarray']) {
array_push($_SESSION['myarray'], $var);
}
}
test("hello");
我只想在 array 中保留 10 个元素$a
。因此,当我调用test($var)
它时,它应该将此值推送到数组,但通过从数组顶部删除一些元素来保持数字为 10。
while (count($_SESSION['myarray'] > 10)
{
array_shift($_SESSION['myarray']);
}
您可以使用 array_shift
if(count($_SESSION['myarray']) == 11))
array_shift($_SESSION['myarray']);
我会这样做:
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 个值。
if(count($_SESSION["myarray"]) == 10)
{
$_SESSION["myarray"][9] = $var;
}
else
{
$_SESSION["myarray"][] = $var
}
应该这样做。
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);
}