Массив сеанса PHP

как я могу сохранить этот массив в сеансе и использовать сеансы для перемещения элементов внутри массива вверх / вниз / влево / вправо по диагонали

$board = array(ABCDEFGH 0 array(0,0,0,0,0,0,0,0), 1 array(0,0,0,0,0,0,0,0), 2 array(0,0,0,0,0,0,0,0), 3 array(0,0,0,0,0,0,0,0), 4 array(0,0,0,0,0,0,0,0), 5 array(0,0,0,0,0,0,0,0), 6 array(0,0,0,0,0,0,0,0), 7 array(0,0,0,0,0,0,0,0) ); 

Я пытаюсь сохранить этот массив в сеансе

 $pieces = array( //checkers pieces player 1 "b" => '<img src="bp.png" width="33" height="37" alt="black piece">', //Checkers pieces for player2 "r" => '<img src="rp.png" width="33" height="32" alt="red piece">', // Empty Squares // Black "bs" => '<img src="bs.png" width="30" height="30" alt="black square">', // Red "rs" => '<img src="rs.png" width="30" height="30" alt="black square">' ); // 'es' represents empty squares $board = array( ABCDEFGH 0 array('b','rs','b','rs','b','rs','b','rs'), 1 array('rs','b','rs','b','rs','b','rs','b'), 2 array('b','rs','b','rs','b','rs','b','rs'), 3 array('rs','bs','rs','bs','rs','bs','rs','bs'), 4 array('bs','rs','bs','rs','bs','rs','bs','rs'), 5 array('r','bs','r','bs','r','bs','r','bs'), 6 array('bs','r','bs','r','bs','r','bs','r'), 7 array('r','bs','r','bs','r','bs','r','bs') ); function map(&$value, $key, $map) { if(array_key_exists($value, $map)) { $value = $map[$value]; } } array_walk_recursive($board, 'map', $pieces); 

и его выйдет на табличку 8×8, когда она распечатает

Я сделал $_SESSION['board'] = $board; после array_walk_recursive

и положить его в

  echo "<table border='1'>\n"; foreach ($_SESSION['board'] as $row) { echo "<tr>\n"; foreach ($row as $piece){ echo "<td>"; echo "$piece "; echo "</td>\n"; } } echo "</tr>\n"; echo "</table>\n"; } 

пользователь вводит эту функцию (поле ввода FROM) F5 – (TO Input) G2 анализирует его в координатах с помощью этой функции

 // parses the users input --FROM-- and to where the user wnats to move the piece // if the user inputs F1 it parses that into (0,0) coordinates function parseSquare() { if (strlen($square) != 2) { return FALSE; } $coords = array(ord('A') - ord($square[0]), $square[1] - 1); // Perform bounds-checking. if ($coords[0] < 0 || $coords[0] > 7 || $coords[1] < 0 || $coords[1] > 7) { return FALSE; } return $coords; } $coords = parseSquare($square); if ($coords === FALSE) { // Invalid input, handle this case. } else { $piece = $board[$coords[0]][$coords[1]]; // for example } 

могу ли я использовать функцию выше для перемещения по диагонали

 $_SESSION['board'][[$new_i]-1][[$new_j] + 1] = $_SESSION['board'][$old_i][$old_j]; $_SESSION['board'][$old_i][$old_j] = ...; 

Вызовите session_start и затем сохраните переменные в $_SESSION – они будут доступны на протяжении всего сеанса:

 session_start(); $_SESSION['board'] = array( ... ); 

Перемещение элементов – это просто назначение одного значения другому, например:

 $_SESSION['board'][$new_i][$new_j] = $_SESSION['board'][$old_i][$old_j]; $_SESSION['board'][$old_i][$old_j] = ...; 

$ _SESSION ['myArray'] = $ board;

и вы можете получить доступ к любому элементу, используя $ _SESSION ['myArray'] [i] [j];

Вы храните его в сеансе

 <?php session_start(); $board=array('whatever'); $session['board']=$board; 

Что касается манипуляции, это просто нормальный массив. Вы можете работать с ним, как и с любым другим массивом.

Да. вы можете хранить и обновлять массив в сеансе. используйте следующее:

 session_start(); $_SESSION['youarray'] =$board; 

и теперь обновляем в массиве $ _SESSION ['youarray'] в соответствии с вашим требованием, которое будет похоже на обычный массив. но хранится в сеансе.