【发布时间】:2014-08-14 04:27:08
【问题描述】:
我正在尝试制作一个 html Sudoku 游戏板,它根据 php $_GET['level'] 和 $_GET['puzzle'] 值加载不同的谜题。 PHP 变量 $get_level 和 $get_puzzle 设置为 $_GET 值,因此它们可以在 javascript 中使用。
<?php
$default_level = 'medium';
$default_puzzle = 1;
$number_of_puzzles_per_level = 10;
if (isset($_GET['level']) && isset($_GET['puzzle'])) {
if ($_GET['level'] == 'easy' || $_GET['level'] == 'medium' || $_GET['level'] == 'hard') {
$get_level = $_GET['level'];
} else {
$get_level = $default_level;
}
if (is_int($_GET['puzzle'])) {
if ($_GET['puzzle'] > 0 && $_GET['puzzle'] <= $number_of_puzzles_per_level) {
$get_puzzle = $_GET['puzzle'];
} else {
$get_puzzle = $default_puzzle;
}
} else {
$get_puzzle = $default_puzzle;
}
} else {
$get_level = $default_level;
$get_puzzle = $default_puzzle;
}
?>
在 javascript 中,我有一堆数组:
level_easy_puzzle_1 = [[0, 0, 0, 7, 0, 3, 0, 0, 0], [0, 2, 3, 5, 0, 0, 0, 0, 3], [0, 0, 0, 0, 4, 0, 0, 0, 9], [1, 0, 7, 0, 0, 0, 0, 4, 0], [0, 4, 0, 3, 0, 9, 0, 8, 0], [0, 8, 0, 0, 0, 0, 5, 0, 1], [7, 0, 0, 0, 6, 0, 0, 0, 0], [8, 0, 0, 0, 0, 1, 2, 5, 0], [0, 0, 0, 2, 0, 4, 0, 0, 0]];
//I will fill out the rest of the puzzles later
level_easy_puzzle_2 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_3 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_4 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_5 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_6 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_7 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_8 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_9 = [[], [], [], [], [], [], [], [], []];
level_easy_puzzle_10 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_1 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_2 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_3 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_4 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_5 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_6 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_7 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_8 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_9 = [[], [], [], [], [], [], [], [], []];
level_medium_puzzle_10 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_1 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_2 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_3 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_4 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_5 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_6 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_7 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_8 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_9 = [[], [], [], [], [], [], [], [], []];
level_hard_puzzle_10 = [[], [], [], [], [], [], [], [], []];
然后,我希望将 javascript 变量 puzzle 设置为上面的拼图数组之一,具体取决于以下变量 get_level 和 get_puzzle 的值。
var get_level = '<?php echo $get_level; ?>';
var get_puzzle = <?php echo $get_puzzle; ?>;
所以,如果get_level 等于'hard' 并且get_puzzle 等于3,我希望变量puzzle 等于数组level_hard_puzzle_3 的内容。
//Here's what I have right now, but it only gives me the name of the array not the contents
var puzzle = 'level_'+get_level+'_puzzle_'+get_puzzle;
希望很清楚我想要什么,感谢您的帮助。
【问题讨论】:
-
要使用动态变量名,您必须使用 eval 或 Function 构造函数,两者都不是特别喜欢。通常的最佳解决方案是使用对象属性和方括号表示法进行访问,例如:
var puzzle = {}; puzzel['level_'+get_level+'_puzzle_'+get_puzzle] = somevalule;。
标签: javascript php arrays variables