2010-04-11 37 views
10

我有一個數組,我想在多個頁面上,所以我把它作爲一個SESSION數組。我想添加一系列名稱,然後在另一個頁面上,我希望能夠使用foreach循環來回顯該數組中的所有名稱。我可以在php的SESSION數組上使用array_push嗎?

這是會話:

$_SESSION['names'] 

我想用array_push像這一系列的名字添加到該數組:

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

我收到此錯誤:

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

我可以使用array_push將多個值放入該數組中嗎?或者,也許有一種更好,更有效的方式來做我想要達到的目標?

回答

25

是的,你可以。但第一個參數應該是一個數組。

所以,你必須做這樣

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

個人,因爲我在這個函數中看到沒有任何意義我從來沒有使用array_push。我只是用

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

非常感謝您的建議! – zeckdude 2010-04-11 10:13:00

+0

謝謝!這也讓我難住了一段時間。 – xbonez 2011-10-27 02:48:38

+0

並永遠記住session_start(); !!!!! – Mikeys4u 2017-04-21 22:58:10

12

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

謝謝你的幫助! – zeckdude 2010-04-11 10:13:28

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"; 
    } 
} 
?> 

輸出

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

0

嘗試試試這個,它去上班:

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

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – Bono 2015-03-10 16:18:26