我在多个页面上有一个我想要的数组,所以我把它变成了一个SESSION数组。我想添加一系列名称,然后在另一个页面上,我希望能够使用foreach循环来回显该数组中的所有名称。
这是会议:
$_SESSION['names']
我想使用array_push向该数组添加一系列名称,如下所示:
array_push($_SESSION['names'],$name);
我收到此错误:
array_push()[function.array-push]: 第一个参数应该是一个数组
我可以使用array_push将多个值放入该数组吗?或者也许有更好,更有效的方式来做我想要实现的目标?
答案 0 :(得分:27)
是的,你可以。但是第一个参数应该是一个数组。
所以,你必须这样做
$_SESSION['names'] = array();
array_push($_SESSION['names'],$name);
我个人从不使用array_push,因为我觉得这个函数没什么意义。我只是使用
$_SESSION['names'][] = $name;
答案 1 :(得分:12)
尝试
if (!isset($_SESSION['names'])) {
$_SESSION['names'] = array();
}
array_push($_SESSION['names'],$name);
答案 2 :(得分:1)
$_SESSION['total_elements']=array();
array_push($_SESSION['total_elements'], $_POST["username"]);
答案 3 :(得分: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";
}
}
?>
输出
价值:pappu
价值:10
价值:tippu
价值:12
答案 4 :(得分: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;
}
}
答案 5 :(得分:0)
是的!您可以使用array_push
推送到session array
,并可以根据需要通过多种方式对其进行访问。
基础:
array_push
采用前两个参数array_push($your_array, 'VALUE_TO_INSERT');
。
请参阅:php manual以供参考。
示例: 因此,首先,您的会话变量应该是一个像这样的数组:
$arr = array(
's_var1' => 'var1_value',
's_var2' => 'var2_value'); // dummy array
$_SESSION['step1'] = $arr; // session var "step1" now stores array value
现在您可以在$ _SESSION ['step1']上使用foreach循环
foreach($_SESSION['step1'] as $key=>$value) {
// code here
}
此代码的好处是您可以使用以下项的键名访问任何数组值:
echo $_SESSION[step1]['s_var1'] // output: var1_value
注意:您也可以使用索引数组进行循环
$arr = array('var1_value', 'var1_value', ....);
奖金: 假设您已重定向到其他页面 您还可以在创建的同一数组中插入会话变量。参见;
// dummy variables names and values
$_SESSION['step2'] = array(
's_var3' => 'page2_var1_value',
's_var4' => 'page2_var2_value');
$_SESSION['step1step2'] = array_merge($_SESSION['step1'], $_SESSION['step2']);
// print the newly created array
echo "<pre>"; // for formatting printed array
var_dump($_SESSION['step1step2']);
echo "<pre>";
输出:
// values are as per my inputs [use for reference only]
array(4) {
["s_var1"]=>
string(7) "Testing"
["s_var2"]=>
int(4) "2124"
["s_var3"]=>
int(4) "2421"
["s_var4"]=>
string(4) "test"
}
*您可以在上面使用foreach循环 或从会话变量数组中获取单个会话变量。
eg:
echo $_SESSION[step1step2]['s_var1'];
OUTPUT:
Testing
希望这会有所帮助!