15

複数のページで必要な配列があるので、SESSION 配列にしました。一連の名前を追加してから、別のページで foreach ループを使用して、その配列内のすべての名前をエコーアウトできるようにしたいと考えています。

これはセッションです:

$_SESSION['names']

次のように array_push を使用して、一連の名前をその配列に追加します。

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

このエラーが発生しています:

array_push() [function.array-push]: 最初の引数は配列でなければなりません

array_push を使用して複数の値をその配列に入れることはできますか? それとも、私が達成しようとしていることを行うためのより良い、より効率的な方法があるのでしょうか?

4

6 に答える 6

38

はい、できます。ただし、最初の引数は配列でなければなりません。

だから、あなたはこのようにする必要があります

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

個人的には、この関数には意味がないと思うので、array_push を使用することはありません。そして、私はちょうど使用します

$_SESSION['names'][] = $name;
于 2010-04-11T09:18:07.557 に答える
12

試してみてください

if (!isset($_SESSION['names'])) {
    $_SESSION['names'] = array();
}
array_push($_SESSION['names'],$name);
于 2010-04-11T09:18:09.070 に答える
1

はい!array_pushpush to aを使用できsession array、要件に応じてそれらにアクセスできる方法があります。

基本: array_push最初の 2 つのパラメーターを取りますarray_push($your_array, 'VALUE_TO_INSERT');。参照: 参照用のphp マニュアル

例: まず、セッション変数は次のような配列にする必要があります。

$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

お役に立てれば!

于 2020-11-04T16:34:16.543 に答える
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";
    }
}
?>

出力

値: パップ
値: 10
値: ティップ
値: 12

于 2013-03-14T12:55:11.707 に答える
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;
    }
}
于 2013-06-18T16:02:23.723 に答える