2010-04-11 25 views
10

Tôi có một mảng mà tôi muốn trên nhiều trang, vì vậy tôi đã tạo một mảng SESSION. Tôi muốn thêm một loạt các tên và sau đó trên một trang khác, tôi muốn để có thể sử dụng một vòng lặp foreach để echo ra tất cả các tên trong mảng đó.Tôi có thể sử dụng array_push trên mảng SESSION trong php không?

Đây là phiên:

$_SESSION['names'] 

tôi muốn thêm vào một loạt các tên để mảng rằng việc sử dụng array_push như thế này:

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

Tôi nhận được lỗi này:

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

Tôi có thể sử dụng array_push để đặt nhiều giá trị vào mảng đó không? Hoặc có lẽ có một cách tốt hơn, hiệu quả hơn để làm những gì tôi đang cố gắng đạt được?

Trả lời

25

Có, bạn có thể. Nhưng đối số đầu tiên phải là một mảng.

Vì vậy, bạn phải làm theo cách này

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

Cá nhân tôi không bao giờ sử dụng array_push như tôi thấy không có ý nghĩa trong chức năng này. Và tôi chỉ sử dụng

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

Cảm ơn đề xuất tuyệt vời! – zeckdude

+0

Cảm ơn bạn! Điều này đã khiến tôi bối rối một lúc. – xbonez

+0

và luôn nhớ session_start(); !!!!! – Mikeys4u

12

Hãy thử với

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

Cảm ơn sự giúp đỡ của bạn! – 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"; 
    } 
} 
?> 

đầu ra

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

0

Hãy thử điều này, nó sẽ làm việc:

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

Mặc dù đoạn mã này có thể giải quyết được câu hỏi, [bao gồm cả giải thích] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. – Bono

Các vấn đề liên quan