2013-10-25 67 views
0

我使用這個PHP函數刪除一些數組元素。foreach()無效的參數

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

:第二個是這樣的:

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第一個函數一切正常,結果是預期的結果。在第二個函數中調用funcion deleteEx我得到警告:爲foreach()提供的無效參數和結果不是我所期望的。任何想法如何消除警告? (我想這就是爲什麼該功能無法正常工作的原因)。

回答

0

首先,有你的globals

語法錯誤更換

global $subs $exs; 

global $subs,$exs; 
+0

遺憾。我已經複製了prev版本。 – Jannuzzo

+0

「globals」這個詞,你的意思是? (; –