如何消除PHP未定义的偏移量错误?

如何消除PHP未定义的偏移量错误?,php,arrays,Php,Arrays,如何消除错误:第20行未定义的偏移量:1?我知道这是因为我调用的数组的偏移量根本不存在 愚蠢地认为这根本不对 //create an array with all x, y for ($x = 1; $x <= 5; $x++) $array_x[] = $x; for ($y = 1; $y <= 5; $y++) $array_y[] = $y; $IN_x = "'" . implode("', '", $array_x) . "'"; $IN_y = "'" . implo

如何消除错误:
第20行未定义的偏移量:1
?我知道这是因为我调用的数组的偏移量根本不存在

愚蠢地认为这根本不对

//create an array with all x, y
for ($x = 1; $x <= 5; $x++) $array_x[] = $x;
for ($y = 1; $y <= 5; $y++) $array_y[] = $y;

$IN_x = "'" . implode("', '", $array_x) . "'";
$IN_y = "'" . implode("', '", $array_y) . "'";

$pullMapInfo = "SELECT x, y, value FROM mapinfo WHERE id='{$id}' AND x IN ({$IN_x}) AND y IN ({$IN_y})";
$pullMapInfo2 = mysql_query($pullMapInfo) or die('error here');

//create an associative array x, y => value
while ($pullMapInfo3 = mysql_fetch_assoc($pullMapInfo2)) {
    $result[ $pullMapInfo3['x'] ][ $pullMapInfo3['y'] ] = $pullMapInfo3['value'];
}

//loop to display output
foreach ($array_x as $x) {
foreach ($array_y as $y) {
    if (array_key_exists($x, $result) && array_key_exists($y, $result)) {
        echo '<div class="castle_array" id="'.$x,'x',$y.'">'. $result[$x][$y] .'</div>
                ';
    } else {
        echo '<div class="castle_array" id="'.$x,'x',$y.'"></div>
                ';
    }
}
}
//创建一个包含所有x,y的数组

对于($x=1;$x您对
array\u key\u存在的第二次调用
应传入
$result[$x]

if ( array_key_exists($x, $result) && array_key_exists($y, $result[$x]) ) {
    // Code goes here...
}
替换此行:

if (array_key_exists($x, $result) && array_key_exists($y, $result)) {
与:

文件:


约瑟夫·西尔伯:试试看,我真的不明白为什么它应该是
($y,$result[$x])
而不是
($y,$result[$y])
($y,$result)
@user1656447-你想检查
$result[$x]
数组是否有
$y
键,因为这正是你在下一行使用的:
$result[$x][$y]
@JosephSilber:你错了。它工作得很好。请检查示例(特别是检查更深层次的数组值),然后自己试试。@JosephSilber我在我的答案中添加了一个PHP小提琴链接,以证明我的语法工作正常,不必像你想的那样更改。
if (isset($result[$x][$y])) {