2010-04-11 16 views
10

Ho una matrice che voglio su più pagine, quindi ho creato una matrice SESSION. Voglio aggiungere una serie di nomi e poi su un'altra pagina, voglio essere in grado di usare un ciclo foreach per echeggiare tutti i nomi in quella matrice.Posso usare array_push su un array SESSION in php?

Questa è la sessione:

$_SESSION['names'] 

voglio aggiungere una serie di nomi a quello array utilizzando array_push come questo:

array_push($_SESSION['names'],$name); 

sto ottenendo questo errore:

array_push() [function.array-push]: First argument should be an array

Posso usare array_push per inserire più valori in quell'array? O forse c'è un modo migliore, più efficiente di fare quello che sto cercando di ottenere?

risposta

25

Sì, è possibile. Ma il primo argomento dovrebbe essere un array.

Quindi, è necessario fare in questo modo

$_SESSION['names'] = array(); 
array_push($_SESSION['names'],$name); 

Personalmente non ho mai utilizzare array_push come la vedo alcun senso in questa funzione. E mi basta usare

$_SESSION['names'][] = $name; 
+0

Grazie per la grande suggestione! – zeckdude

+0

Grazie! Questo mi ha lasciato per un po 'perplesso. – xbonez

+0

e ricorda sempre session_start(); !!!!! – Mikeys4u

12

Prova con

if (!isset($_SESSION['names'])) { 
    $_SESSION['names'] = array(); 
} 
array_push($_SESSION['names'],$name); 
+0

Grazie per il vostro aiuto! – zeckdude

0
<?php 
session_start(); 

$_SESSION['data']= array(); 
$details1=array('pappu','10'); 
$details2=array('tippu','12'); 

array_push($_SESSION['data'],$details1); 
array_push($_SESSION['data'],$details2); 

foreach ($_SESSION['data'] as $eacharray) 
{ 
while (list(, $value) = each ($eacharray)) 
    { 
     echo "Value: $value<br>\n"; 
    } 
} 
?> 

uscita

Value: pappu
Value: 10
Value: tippu
Value: 12

0

Prova questo, sta andando a lavorare:

session_start(); 

if(!isset($_POST["submit"])) 
{ 
    $_SESSION["abc"] = array("C", "C++", "JAVA", "C#", "PHP"); 
} 

if(isset($_POST["submit"])) 
{ 
    $aa = $_POST['text1']; 

    array_push($_SESSION["abc"], $aa); 

    foreach($_SESSION["abc"] as $key => $val) 
    { 
     echo $val; 
    } 
} 
1
$_SESSION['total_elements']=array(); 
array_push($_SESSION['total_elements'], $_POST["username"]); 
+3

Anche se questo snippet di codice può risolvere la domanda, [compresa una spiegazione] (http://meta.stackexchange.com/questions/114762/explaining-entally-code-based-answers) aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro, e queste persone potrebbero non conoscere le ragioni del tuo suggerimento sul codice. – Bono