3
我試圖從表單中排除字段中的字段。目前,整個陣列付款都是針對每條語句執行的。我試圖保持領域額外,extra2和extra3不被要求。可以將其設置爲null或將其定義爲空字符串。這是我目前有:PHP從foreach語句中排除特定變量值
foreach($p as $key => $value) {
$value = trim($value);
if($value == '') {
$keyName = preg_replace('/([A-Z])/', " $1", $key);
$this->_errors['Payment ' . $keyName] = __('Payment ','cart66') . $keyName . __(' required','cart66');
$this->_jqErrors[] = "payment-$key";
}
這是我都試過了,但無濟於事:
foreach($p as $key => $value) {
$value = trim($value);
if($value == '' && $p != 'extra' || 'extra2' || 'extra3') {
$keyName = preg_replace('/([A-Z])/', " $1", $key);
$this->_errors['Payment ' . $keyName] = __('Payment ','cart66') . $keyName . __(' required','cart66');
$this->_jqErrors[] = "payment-$key";
}
else if ($p['extra'] == '') {
$_p['extra'] = NULL;
}
else if ($p['extra2'] == '') {
$_p['extra2'] = NULL;
}
else if ($p['extra3'] == '') {
$_p['extra3'] = NULL;
}
}
這是我的語法是不是?數據庫本身被設置爲接受null,並且不是主要的或唯一的。
這是相反的方式,它排除了一切,但我想排除的領域,但我絕對可以從這裏處理它。非常感謝你。這是Benjamin提供的array_diff的不同方法嗎? –
是的,他建議你在循環前從數組中去掉不需要的元素,然後(如有必要)在之後重新插入它們。如果你擁有相當大的數組,但是對於典型的輸入數組,差異應該可以忽略不計,這樣做可能會有一些性能優勢,所以使用哪一個都可以提供最易讀,可維護的代碼。 – Okonomiyaki3000
我應該把「!」在我的情況下如此以至於我真的想要對嗎? –