0

エラーを取り除く方法:Undefined offset: 1 on line 20?オフセットされた配列を呼び出すImが単に存在しないために発生することを私は知っています。

@でそれをSilecingすることはまったく正しくないようです。

//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>
                ';
    }
}
}

2forループはawkardのようです

4

2 に答える 2

2

この行を置き換えます:

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

と:

if (isset($result[$x][$y])) {

ドキュメント:isset

Joseph Silberの場合:このPHPフィドルを試してください

于 2012-09-09T12:49:44.300 に答える
1

への2回目の呼び出しarray_key_existsは通過する必要があり$result[$x]ます:

if ( array_key_exists($x, $result) && array_key_exists($y, $result[$x]) ) {
    // Code goes here...
}
于 2012-09-09T12:47:31.720 に答える