この PHP 関数を使用して、いくつかの配列要素を削除します。
function deleteEx ($ind, $kl) {
global $exs;
foreach ( $exs as $key => $examples )
if ( $examples['KL'] == $kl && $examples['id'] == $ind)
unset( $exs[$key] );
}
そして、計算中にそれを呼び出す2つの異なる関数があります.1つ目はこれです:
function deleteSub ($editing) {
global $subs, $exs;
$kl= $_POST['kl'];
foreach ( $subs as $key => $subject )
if ( $subject['knowledgeLevel'] == $kl )
unset( $subs[$key] );
if ($editing == 0) {
for ( $i=1; $i <= count($exs); $i++)
deleteEx($i, $kl);
header("refresh:0;url=backdoor.php");
exit;
}
}
2つ目はこれです:
function editSub () {
$kl= $_POST['kl'];
for ($i= 1; $i<= $_POST['nofexamples']; $i++) {
if (strcmp ($_POST['oldex'.$i], $_POST['example'.$i]) != 0)
deleteEx($i, $kl);
}
deleteSub (1);
}
最初の関数内で関数 deleteEx を呼び出すと、すべてが正常に機能し、期待どおりの結果が得られます。2 番目の関数内で関数 deleteEx を呼び出すと、次の警告が表示されます。警告を取り除く方法について何か考えはありますか? (それが機能がうまく動作しない理由だと思います)。