2010-11-29 3 views
1

어떻게 배열 상/하/좌/우 대각선PHP 세션 배열

$board = array(A B C D E F G H 
    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( A B C D E F G H 
     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); 

과는

나는 array_walk_recursive

$_SESSION['board'] = $board;했다을 출력 할 때의 8x8 테이블 보드에 나올 예정 난 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 
} 

좌표로 구문 분석 (입력) 할 수 - 617,451,515,

사용자는 F5 (입력 박스)에서이 함수에 inputing된다

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

    } 

에 넣어 위의 함수를 사용하여 대각선으로 이동하십시오.

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

답변

4

전화 session_start, 그 후는 $_SESSION에 변수를 저장 - 그들은 세션에 걸쳐 사용할 수 있습니다 :

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

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

요소를 이동하면 다른 하나 개의 값을 할당의 문제는, 예를 들면,

+0

위의 내 게시물을 업데이트했습니다. – hgbso

+0

@hgbso : 거기에 새로운 질문이 없습니다. – casablanca

+0

$ _SESSION [ 'board'] [$ new_i -1] [$ new_j +1] = $ _SESSION [ 'board'] [$ old_i] [$ old_j]; $ _SESSION [ 'board'] [$ old_i] [$ old_j] = ...; 이것을 사용하여 대각선으로 이동할 수 있습니다 – hgbso

1

예. 세션에서 배열을 저장하고 업데이트 할 수 있습니다. 이 같은 사용 :

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

지금은 일반 배열처럼 될 것입니다 귀하의 요구 사항에 따라 $ _SESSION에서 업데이트 [ 'youarray'] 배열을한다. 세션에 저장됩니다.

+0

위의 내 게시물을 업데이트했습니다. – hgbso

2

$ _SESSION [ 'myArray'] = $ board;

그리고 $ _SESSION [ 'myArray'] [i] [j]를 사용하여 모든 요소에 액세스 할 수 있습니다.

+0

위 내 게시물을 업데이트했습니다 – hgbso

1

당신은 조작에 관해서는

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

같은 세션에 저장, 그냥 보통의 배열입니다. 다른 배열과 마찬가지로 작업 할 수 있습니다.

+0

위 내 게시물을 업데이트했습니다. – hgbso