2013-08-19 75 views
0

嗨,基本上我將表單字段名稱存儲在一個數組中。這工作正常,因爲我能夠打印出陣列並查看它的內容。我遇到的問題是檢查這些內容並根據它們將新值存儲在新數組中。PHP in_array&在新陣列中存儲值

PHP

$required = array('frm_companyName', 'frm_hrManager', 'frm_lnManager'); 
$fieldArray = array(); 
$errorArray = array(); 

...

foreach ($required as $field) { 
    if (empty($_POST[$field])) { 
    $fieldArray[] = $field; 
    } 
} 

...

if (in_array("frm_companyName", $fieldArray)) { 
    $errorArray[] = "Company Name"; 
} 

當我打印出來的$ errorArray []我返回一個空數組(但$ fieldArray []確實顯示內容。任何想法?我知道這肯定是簡單的。/謝謝

UPDATE:

我已經改變了行

if (in_array("frm_companyName", $fieldArray)) { 
    $errorArray[] = "Company Name"; 
} 

if (in_array("frm_companyName", $fieldArray)) { 
    echo " ---- Working ---- "; 
} 

只是呼應了消息,但它不附和所以肯定有一些錯誤檢查即in_array。

+0

'var_dump($ fieldArray)'說什麼? –

+0

@Jack我得到:array(1){[0] => string(15)「frm_companyName」} –

+0

您的代碼[應該可以正常工作](http://codepad.viper-7.com/a2nlGW)。 –

回答

-1
if (in_array("frm_companyName", $fieldArray)) { 
    $errorArray[] = "Company Name"; 
} 

是問題的原因。您不應該直接將字符串放入數組中。 相反,你可能要指定數組的索引,例如

$errorArray[0] = "Company Name"; 

或只是把串入陣。

array_push($errorArray, "Company Name"); 
1

我想你錯過了!標誌,像這樣:

// Check for missing field 
if (! in_array("frm_companyName", $fieldArray)) { 

    $errorArray[] = "Company Name"; 

} 
+0

嗨,我承擔!檢查「frm_companyName」是否存在,它在那裏,我希望它檢查它是否存在。我更新了我的問題。 –

0

感謝您的建議傢伙,

我設法追查問題到被幹擾的一些早期的代碼。因爲有超過1000行,我無法發佈。

但是再次感謝。