2010-04-11 13 views
10

Tengo una matriz que quiero en varias páginas, así que la hice una matriz de SESIÓN. Quiero agregar una serie de nombres y luego en otra página, quiero poder usar un bucle foreach para repetir todos los nombres en esa matriz.¿Puedo usar array_push en una matriz SESSION en php?

Esta es la sesión:

$_SESSION['names'] 

Quiero añadir una serie de nombres a la matriz mediante array_push así:

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

estoy recibiendo este error:

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

¿Puedo usar array_push para poner múltiples valores en esa matriz? ¿O tal vez hay una manera mejor y más eficiente de hacer lo que estoy tratando de lograr?

Respuesta

25

Sí, puedes. Pero el primer argumento debería ser una matriz.

lo tanto, debe hacerlo de esta manera

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

Personalmente nunca usan array_push como veo ningún sentido en esta función. Y sólo tiene que utilizar

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

Gracias por la gran sugerencia! – zeckdude

+0

¡Gracias! Esto me hizo tambalear por un tiempo también. – xbonez

+0

y siempre recuerda session_start(); !!!!! – Mikeys4u

12

intento con

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

¡Gracias por tu ayuda! – 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"; 
    } 
} 
?> 

salida

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

0

Prueba esto, se va a trabajar:

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

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. – Bono

Cuestiones relacionadas