2009-07-09 142 views
0

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

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

test("hello"); 

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

回答

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

+0

由于这是我提出的要求。干杯。 – TigerTiger 2009-07-09 10:27:35

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

应该这样做。

1

您可以使用array_shift

if(count($_SESSION['myarray']) == 11)) 
    array_shift($_SESSION['myarray']); 
2
while (count($_SESSION['myarray'] > 10) 
{ 
    array_shift($_SESSION['myarray']); 
} 
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); 
} 
相关问题