0

セッション配列から変数を削除できるコードを書き込もうとしています

これが私のコードです

index.php

    <?php
        if(isset($_POST['add']))
            {
            $_SESSION['temp'][]=$_POST['rfield'];   
            $_SESSION['scol_id'][]=$_POST['scol_id'];  

            }
       if(isset($_SESSION['temp']))
        {
            ?>
            <table width="100%" border="0" class = "table">
            <?php
            $x=0;
           foreach($_SESSION['temp'] as $temp)
            { 
                ?>
        <tr><td>
        <?php echo $temp; ?> 
        </td>
        <td><a href="removerf.php?id=<?php echo $x; ?>" rel="tooltip" title="remove" class="link"><i class="icon-remove"></i></a></td>
        </tr>
        <?php
            $x++;
            }
        ?>
        </table>
        <?php
        }
        ?>                          

removerf.php

    <?php
    session_start();

    unset($_SESSION['temp'][$_GET['id']]);

    header("location:reportmaker.php");

    ?>

私のコードの問題は、変数を削除できる場合とできない場合があることです。

また、奇妙な理由で配列の最初の変数を削除することもできません

私は何かが足りないのですか?

前もって感謝します

4

1 に答える 1

1

$xが正しい配列キーであることに依存しません。代わりにこれを試していただけますか?

<?php
if(isset($_POST['add']))
{
    $_SESSION['temp'][]=$_POST['rfield'];   
    $_SESSION['scol_id'][]=$_POST['scol_id'];  
}
if(isset($_SESSION['temp']))
{
    ?>
    <table width="100%" border="0" class = "table">
    <?php
    foreach($_SESSION['temp'] as $key => $temp)
    { 
    ?>
        <tr><td>
        <?php echo $temp; ?> 
        </td>
        <td><a href="removerf.php?id=<?php echo $key; ?>" rel="tooltip" title="remove" class="link"><i class="icon-remove"></i></a></td>
        </tr>
    <?php
    }
?>
</table>
<?php
}
?>  

配列キーとして$xに依存すると、一時配列からキーを削除するたびに問題が発生します。一時配列が次の場合:

array(
    0 => 'foo',
    1 => 'bar'
)

配列から0を削除すると、配列キー0が存在しなくても、$xは0として開始されます。つまり、現在アレイに存在するアレイキーについて想定しています。

foreachに関して:

foreach($myArray as $arrayKey => $arrayValue){
     //$arrayKey is the array key of the element / index
     //$arrayValue is the actual element that is stored.
}
于 2012-11-28T12:04:22.977 に答える