我想運行一些邏輯測試並匹配一個字符串對數據庫的列表,但需要與我有數組的幫助。加入循環中的數組中的3個值
問題
我有一個數組:
$myArray =
array([0] (
array [0] ([0] A, [1] B, [2] C, [3] H)
array [1] ([0] A, [1] D, [2] G, [3] H, [4] L)
array [2] ([0] D, [1] Z, [2] J, [3] K, [4] O, [5] X)
)
array([1] (
array [2] ([0] F, [1] Y, [2] W, [3] H, [4] L)
)
array([2] (
array [0] ([0] O, [1] T, [2] C, [4] O, [5] X)
array [1] ([0] U, [1] E, [2] E, [3] D)
))
我試圖這個陣列對,結合圖1,2和3的字符串與組合的列表中,以測試字符串「_」在表。
實施例:A或A_B或A_B_C
變量和常量
- 陣列長度可在每個陣列的第二維度的變化
- 字符串可以重複幾次,並且它沒有軸承上的邏輯
- 恆定然而是,測試到兩個字符串或三個串組合始終是連續的(例如,始終A_B或A_B_C和不A_D或A_D_J如果是有道理的)
- 序列移動每次例如一個字母。第一次測試(A_B_C,A_B和A),然後測試(B_C_D,B_C和B),然後(C_D_E等等)
- 當數組的字符串不足以繼續測試2或3個組合單詞時,測試應該只是1串運行
我所試圖做的和預期的結果
我需要用數組語法幫助,幫助我建立的代碼爲3級的邏輯論證在一個循環
像這樣:
如果A_B_C存在於myTable中,請執行以下操作
ELSE IF A_B存在如果存在做另一件事
否則返回做別的事情
ELSE空白
我不能完全弄清楚但是如何處理上述陣列,以便在變量到達
$firstTest = 'A_B_C'; <br>
$secondTest = 'A_B'; <br>
$thirdTest = 'A'; <br>
(我可以得到thirdTest)
我試了一下
通過接收其他陣列問題一些有用的幫助,我試圖傳遞$ myArray的通過foreach循環如下:
foreach ($myArray as $newArray) {
$i = 0;
$j = $i++;
foreach($newArray as $key=>$val) {
$impArray = array($val[$i],$val[$j]);
echo implode('_', $impArray);
}
}
但是這需要每個第一級陣列的第一個字符串。
編輯:
我一直在嘗試array_slice和同時做,幾乎可以到達那裏,但模式並不完全遵循3X串組合;相反,它從3個字符串增加到4個字符串,5個字符串等......我不知道爲什麼。
這裏是我的最新嘗試:
foreach ($myArray as $newArray => $val) {
$x = 0;
$z = 3;
$route = array();
do {
$route = array_slice($val, $x , $z);
$imp_route = implode('_', $route);
echo $imp_route;
$x++;
$z++;
} while ($z <= count($val));
}
你的例子別t似乎與您在開始提供的'$ myArray'對齊。你可以確保你的例子** Variables和Constants **匹配給定的'$ myArray'嗎?例如,我沒有看到任何會產生「B_C_D」組合的集合。 – mopo922
是的,我想盡可能在V&C儘可能清晰。爲了顯示這些是順序的,我指的是A_B_C。但如果你願意,序列必須運行,A_B_C,B_C_H,然後在陣列[1] A_D_G,D_G_H等... – Jacob
這有助於,謝謝。 – mopo922