2009-07-09 102 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); 
} 
相關問題