我的問題是:爲什麼腳本輸入所有if語句?即使「陣列」問題不應該讓他們。PHP如果聲明錯誤
首先我向你展示我從模型中得到的數組: 在這種情況下,數組就像array([0] => array()),因爲我只從數據庫中獲得1行。
array(1) {
[0]=>
array(7) {
["Kunden_ID"]=>
float(250)
["Kundentyp_ID"]=>
float(1)
["kundentyp_row_id"]=>
int(100)
["ext_kdnr"]=>
float(0)
["kundentyp_anmerkung"]=>
string(0) ""
["status"]=>
string(0) ""
["name"]=>
string(4) "ROLA" // Thats what we are looking for in our statements
}
}
在下面的代碼中,我需要檢查一個特定的字符串是否在結果數組的特定索引中。 這樣我就可以創建稍後需要的關係。
我們的代碼:
for($i = 0; $i < $arr_length; $i++){ // for runs only once since we only get 1 row back
if(in_array("ROLA", $result_array[$i])){
// check if you find the string "ROLA" in the array idx $i
$rola = true;
$rola_pos = $i;
$rola_row = $result_array[$i]["kundentyp_row_id"];
echo "<br/>ROLA TYP AKTIV";
}
if(in_array("ROLA_OBC", $result_array[$i])){
$rola_obc = true;
$rola_obc_pos = $i;
$rola_obc_row = $result_array[$i]["kundentyp_row_id"];
echo "<br/>ROLA OBC TYP AKTIV";
}
if(in_array("MYTO_FAI", $result_array[$i])){
$myto_fai = true;
$myto_fai_pos = $i;
$myto_fai = $result_array[$i]["kundentyp_row_id"];
echo "<br/>MYTO FAI TYP AKTIV";
}
if(in_array("OMV", $result_array[$i])){
$omv = true;
$omv_pos = $i;
$omv = $result_array[$i]["kundentyp_row_id"];
echo "<br/>OMV TYP AKTIV";
}
if(in_array("VAT", $result_array[$i])){
$vat = true;
$vat_pos = $i;
$vat = $result_array[$i]["kundentyp_row_id"];
echo "<br/>VAT TYP AKTIV";
}
if(in_array("PLAKETTEN", $result_array[$i])){
$plaketten = true;
$plaketten_pos = $i;
$plaketten = $result_array[$i]["kundentyp_row_id"];
echo "<br/>PLAKETTEN TYP AKTIV";
}
if(in_array("SPEDITION", $result_array[$i])){
$spedition = true;
$spedition_pos = $i;
$spedition = $result_array[$i]["kundentyp_row_id"];
echo "<br/>SPEDITION TYP AKTIV";
}
if(in_array("MOEST", $result_array[$i])){
$moest = true;
$moest_pos = $i;
$moest = $result_array[$i]["kundentyp_row_id"];
echo "<br/>MOEST TYP AKTIV";
}
if(in_array("BERUFUNGEN", $result_array[$i])){
$berufungen = true;
$berufungen_pos = $i;
$berufungen = $result_array[$i]["kundentyp_row_id"];
echo "<br/>BERUFUNGEN TYP AKTIV";
}
if(in_array("DIVERSE", $result_array[$i])){
$diverse = true;
$diverse_pos = $i;
$diverse = $result_array[$i]["kundentyp_row_id"];
echo "<br/>DIVERSE TYP AKTIV";
}
}
正如你看到的結果數組包含字符串「ROLA」因此第一個IF語句應該是真實和執行。是這樣的。 但所有其他if語句也是如此。 爲什麼?
編輯
如這裏要求的東西,你可以複製粘貼到一個PHP文件來複制它:
$testArr = array (0 => array ('Kunden_ID' => 250, 'Kundentyp_ID' => 1, 'kundentyp_row_id' => 100, 'ext_kdnr' => 0, 'kundentyp_anmerkung' => '', 'status' => '', 'name' => 'ROLA',));
$length = count($testArr);
for($i = 0; $i < $length; $i++){
if(in_array("ROLA", $testArr[$i])){
$rola = true;
echo "<br/>ROLA TYP AKTIV";
}
if(in_array("ROLA_OBC", $testArr[$i])){
$rola_obc = true;
echo "<br/>ROLA OBC TYP AKTIV";
}
if(in_array("MYTO_FAI", $testArr[$i])){
$myto_fai = true;
echo "<br/>MYTO FAI TYP AKTIV";
}
if(in_array("OMV", $testArr[$i])){
$omv = true;
echo "<br/>OMV TYP AKTIV";
}
if(in_array("VAT", $testArr[$i])){
$vat = true;
echo "<br/>VAT TYP AKTIV";
}
if(in_array("PLAKETTEN", $testArr[$i])){
$plaketten = true;
echo "<br/>PLAKETTEN TYP AKTIV";
}
if(in_array("SPEDITION", $testArr[$i])){
$spedition = true;
echo "<br/>SPEDITION TYP AKTIV";
}
if(in_array("MOEST", $testArr[$i])){
$moest = true;
echo "<br/>MOEST TYP AKTIV";
}
if(in_array("BERUFUNGEN", $testArr[$i])){
$berufungen = true;
echo "<br/>BERUFUNGEN TYP AKTIV";
}
if(in_array("DIVERSE", $testArr[$i])){
$diverse = true;
echo "<br/>DIVERSE TYP AKTIV";
}
}
很確定你想使用'in_array(「whatever」,$ result_array)',而不是'$ result_array [$ i]'... –
與你的bug無關,但你應該**使用'loop' **,這段代碼有太多的重複,它只是尖叫:) –
@EdCottrell我不想檢查它是否在WHOLE數組中。我需要看看它是否在特定的子陣列中。因爲如果我進入result_array [1]例如,那麼我知道所有其他條目都與我正在尋找的STRING相關。如果我簡單地檢查它是否在整個陣列中,我不能真正地做出任何具體關係 –