2009-07-09 8 views
0

Comment conserver un certain nombre d'éléments dans un tableau?Comment conserver un certain nombre d'éléments dans un tableau?

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

test("hello"); 

Je veux juste garder 10 éléments dans le tableau $a. Donc quand j'appelle test($var) il devrait pousser cette valeur au tableau mais garder le nombre à 10 en supprimant certains éléments du haut du tableau.

Répondre

1

je ferais ceci:

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

Si un peu plus de 10 valeurs dans le tableau après l'ajout du nouveau, il suffit de prendre la dernière 10 valeurs.

+0

Merci ce que je demandé. À votre santé. – TigerTiger

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

Cela devrait fonctionner.

1

Vous pouvez utiliser 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); 
    } 
} 

Utilisation:

$data = array(); 

for ($i = 1; $i <= 15; $i++) { 
    array_10($data, $i); 
    print_r($data); 
} 
Questions connexes