为什么PHP 3D数组具有';z';没有定义?
以下数据应返回:为什么PHP 3D数组具有';z';没有定义?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,以下数据应返回: x=1 y=1 z=1 值=3 但作为最后一行var\u dump($result\u value)不带z返回: x=1 y=1 值=3 在$result\u值中有“z”我缺少了什么 $pullMapInfo = "SELECT x, y, z, value FROM mapinfo WHERE id='{$player_id}'"; $pullMapInfo2 = mysql_query($pullMapInfo) or die($error[4]);
- x=1
- y=1
- z=1
- 值=3
var\u dump($result\u value)代码>不带z返回:
- x=1
- y=1
- 值=3
在$result\u值中有“z”我缺少了什么
$pullMapInfo = "SELECT x, y, z, value FROM mapinfo WHERE id='{$player_id}'";
$pullMapInfo2 = mysql_query($pullMapInfo) or die($error[4]);
//create an array with all x, y, z
for ($y = 1; $y <= 16; $y++) $array_y[] = $y;
for ($x = 1; $x <= 16; $x++) $array_x[] = $x;
for ($z = 1; $z <= 3; $z++) $array_z[] = $z;
//create an associative array x, y, z => value
$result_value = array();
while ( $pullMapInfo3 = mysql_fetch_assoc($pullMapInfo2) ) {
$result_value[ $pullMapInfo3['x'] ][ $pullMapInfo3['y'] ][ $pullMapInfo3['z'] ] = $pullMapInfo3['value'];
}
//loop to display output
foreach ($array_z as $z) {
echo '<div class="container">';
foreach ($array_y as $y) {
foreach ($array_x as $x) {
if (array_key_exists($x, $result_value) && array_key_exists($y, $result_value[$x] )) {
echo '<div class="tileBox pos_',$result_value[$x][$y][$z] ,'" id="'.$x.','.$y.','.$z.'"></div>';
} else {
echo '<div class="tileBox pos_0" id="'.$x.','.$y.','.$z.'"></div>
';
}
}
}
echo '</div>';
}
var_dump($result_value);
#outputs: array(1) { [1]=> array(1) { [1]=> array(1) { [1]=> string(1) "3" } } }
#as it pulled data from database: x, y, value - it misses z!
用于在php中创建多维数组
$newarr[array_pop($arr)] = 0;
foreach (array_reverse($arr) as $i)
$newarr[$i] = $newarr;
请检查此项,并对其进行更多解释。Z就在那里。如果将输出拆分,则可以看到它有三个维度,最后一个维度是Z
array(
[x=1] => array(
[y=1] => array(
[z=1] => "3"
)
)
那么$result\u value[$x][$y][$z]=3你能在循环中发布一个var\u转储($pullMapInfo3)
吗?z在吗?x[=1]包含一个数组,y[=1]包含一个数组,z[=1]包含值3。我已经为@Fluffeh添加了var_dump($pullMapInfo3),你说@Robbie是什么意思?@149170-我在下面的答案中对其进行了分解。这样的解释比在评论栏中更好。显然,你说它不起作用还有其他原因,那么这些症状是什么呢!我必须注意细节。并不是说3d表是不可能的,只是对于局外人来说很难。你可以使用对象(你可以将类嵌套在一起)或索引数组来做一些“更清晰”的事情,但对于你想要做的事情,3级数组可能是完美的,你只需要通过尝试使它更清晰来让它更复杂。。。祝项目顺利。
array(
[x=1] => array(
[y=1] => array(
[z=1] => "3"
)
)