2011-10-23 11 views
1

私はPHPセッションでこの配列を使用していますが、これは一度に1ステップずつ進めたいものです。PHPセッション変数の配列値を増やす

現在の配列インデックスを取得し、1つ前または後ろに移動するにはどうすればよいですか?ここでは、コードです:

for ($i = 0; $ < 10; $i++){  
    $result_array[] = $i; 
} 

$_SESSION['theValue'] = $result_array; 

は、私が試した:

$_SESSION['theValue'] [0]++; 

は、一度に配列一歩を移動するには、それだけでそのインデックスの同じ値を表示します。インデックスを増やす方法はありますか?

私は分かりやすいとは確信しています。

+0

*アレイを一度に1ステップ移動する*この行は何を意味していますか? –

答えて

1

のinitセッション配列

$_SESSION['theValue'] = $result_array; 
$_SESSION['currentIndex'] = 0; 

この

$prev = $_SESSION['currentIndex'] == 0 ? 0 : $_SESSION['currentIndex'] - 1; 
$next = $_SESSION['currentIndex'] == sizeof($_SESSION['theValue']) ? $_SESSION['currentIndex'] : $_SESSION['currentIndex'] + 1; 

などの次/前のボタンを作成し、次/前のページに行くには、単に$_SESSION['currentIndex']


ユースケースをデクリメント/インクリメント:
このようなリンク:

<a href="index.php?page=1">Next</a> 
<a href="index.php?page=0">Prev</a> 

あなたが$_GET['page']の値をキャッチし、コンテンツをレンダリングする前にcurrentIndexセッションプロパティにそれを保存する必要があります。

if(isset($_GET['page'])){ 
    if(is_numeric($_GET['page']){ 
     if($_GET['page'] >= 0 && $_GET['page'] <= sizeof($_SESSION['theValue'])){ 
      $_SESSION['currentIndex'] = $_GET['page']; 
     } 
    } 
} 
// place code which works with 'currentIndex' and array in session here... 
+0

あなたのコードをありがとうございますが、前と次を押すと1と0が得られます。それは1以上に増加しません。再度、感謝します。 –

+0

現在の値を 'currentIndex'セッションプロパティに保存していますか?ページのリロード時にこの変数を保存する必要があります –

+0

もう一度おねがいしますが、currentIndexを保存して参照するにはどうすればよいですか?私の質問を許してください。 –

3

私はあなたが、配列をループにしたいことを正確にあなたの質問を理解していれば、あなたはこのような何か行う必要があります。

$size = count($_SESSION['theValue']); 
for($i=0; $i < $size; $i++) 
{ 
    $currentValue = $_SESSION['theValue'][$i]; 
} 

サイズはローカル変数であり、あなたが(カウントを使用していないことを確認してください)を直接forループ内にあります。

$ _SESSION ['theValue'] [0] ++を実行する方法は、実際にゼロインデックスで値をインクリメントします。

3

$_SESSION['theValue'] [0]++は、実際には配列インデックスをインクリメントするのではなく、配列の最初の値をインクリメントします。配列関数を使用するには、特にkeynextを使用して配列をナビゲートします。

また、セッションで最後の配列インデックスを保持する場合は、別のセッション値としてインデックスを格納することができます。アレイの長さはcount($array)を使用して読み取られます。インデックスは0からcount - 1に達します。

関連する問題