組織完後面的PHP代碼後,我發現它們實際上又重複了一遍。如何避免在PHP中這樣重複的if語句?
有什麼辦法可以將代碼改進和擴展到無限級別嗎?
我們通常在技術術語中稱這個問題爲何?
$tags = [
0 => ['0.1','0.2'],
1 => ['1.1','1.2'],
2 => ['2.1','2.2']
];
$num = count($tags);
$level = 0;
foreach ($tags[$level] as $tag) {
echo '<p style="text-indent:'.(2*$level).'em">';
echo $tag;
echo '</p>';
$level++;
if($level<=($num-1)){
foreach ($tags[$level] as $tag) {
echo '<p style="text-indent:'.(2*$level).'em">';
echo $tag;
echo '</p>';
$level++ ;
if($level<=($num-1)){
foreach ($tags[$level] as $tag) {
echo '<p style="text-indent:'.(2*$level).'em">';
echo $tag;
echo '</p>';
$level++ ;
if($level<=($num-1)){
foreach ($tags[$level] as $tag) {
echo '<p style="text-indent:'.(2*$level).'em">';
echo $tag;
echo '</p>';
}
}
$level--;
}
}
$level--;
}
}
$level--;
}
這是代碼的結果。
0.1
1.1
2.1
2.2
1.2
2.1
2.2
1.1
1.1
2.1
2.2
1.2
2.1
2.2
您正在尋找遞歸。 – jeroen
你可以使用遞歸來解決這個問題,這也是你正在尋找的術語 – dimlucas
@ jeroen,非常感謝你。我現在正在查看手冊並試圖解決這個問題。 – Joe