我是相當新的PHP,所以請與我裸...複選框陣列相比其他陣列(PHP)
我有幾個複選框的頁面。您可以進行任意組合的選擇。
<form action="result.php" method="post">
<p>
<label>
<input type="checkbox" name="CheckboxGroup1[]" value="choice" id="choice">
option 1
</label>
<br>
<label>
<input type="checkbox" name="CheckboxGroup1[]" value="range-all" id="range-all">
option 2
</label>
<br>
<label>
<input type="checkbox" name="CheckboxGroup1[]" value="range-two" id="range-two">
option 3
</label>
<br>
<label>
<input type="checkbox" name="CheckboxGroup1[]" value="range-two" id="range-two">
option 4
</label>
<br>
<label>
<input type="checkbox" name="CheckboxGroup1[]" value="range-other-two" id="range-other-two">
option 5
</label>
<br>
</p>
<p>
<input type="submit">
</p>
</form>
提交您的選擇後,表單將帶您進入下一頁,在該頁面中將複選框選擇陣列與預定義的選項陣列進行比較。
<?php
$options = array("choice", "range-all", "range-two", "range-other-two");
$checkboxes = $_POST['CheckboxGroup1'];
$intersection = array_intersect($options, $checkboxes);
$results = print_r($intersection, true);
//these are various scenarios based on what the user could choose
$scen1var = array("choice", "range-all");
$scen1 = print_r($scen1var, true);
$scen2var = array("choice", "range-two");
$scen2 = print_r($scen2var, true);
$scen3var = array("choice", "range-other-two");
$scen3 = print_r($scen3var, true);
$scen4var = array("range-all", "range-other-two");
$scen4 = print_r($scen4var, true);
if ($results === $scen1) {
echo "choice and range all";
}
elseif ($results === $scen2) {
echo "range consumables and range both";
}
//The elseif's carry on in this manner
else {
echo "something else";
}
?>
我現在有一個問題,現在第一個「if語句」的作品,但elseif沒有。另外,如果我更改第一個「if語句」以將$ results與其他任何$ scen比較,即。 $ scen2,$ scen3,它不起作用,只是跳轉到「其他」部分。
我有一種感覺,我不是做的意義,所以請讓我知道,如果我能詳細解釋多一點...
而且這種方式我這樣做似乎有點過分。當然有一個更簡單的方法?
任何幫助將非常感激!
感謝, 帕特里克
爲什麼使用'print_r()'進行比較?你可以比較兩個數組''array_1 === $ array_2',不是嗎? – amsross