我正在嘗試編寫一個PHP Breadcrumb函數,該函數使用PHP的$ _SERVER [「REQUEST_URI」]函數來訪問包含該URI的數組。使用foreach循環和數組的PHP Breadcrumb函數
我目前正在努力編寫函數來循環數組來構建最終產品,即正確格式化它的自我麪包。
所以,如果我們有如下調用函數:
createBreadcrumb( 「manage_account.php」);
這是函數以及作爲參數的URI,函數應該用來構建麪包屑。
因此,如果參數是manage_account.php,應該訪問第一個數組,即$ breadcrumbArray [0] [1] [0];;後續的$ breadcrumbArray [0] [1] [1]與to $ breadcrumbArray [1] [1];這是URI的人類可讀版本。 $ breadcrumbArray [2] [1]是人類可讀版本的路徑。
我的陣列如下:
$this->breadcrumbArray[0] = array(
array("index.php", 1),
array("manage_account.php", 1, 2),
array("manage_users.php", 1, 3),
array("view_users.php", 1, 4),
array("new_user.php", 1, 5),
array("edit_user.php", 1, 6),
array("view_user.php", 1, 7),
array("new_module.php", 1, 8),
array("edit_module.php", 1, 9),
array("view_module.php", 1, 10),
array("new_handbook.php", 1, 11),
array("edit_handbook.php", 1, 12),
array("view_handbook", 1, 13)
);
$this->breadcrumbArray[1] = array(
"1" => "Home",
"2" => "Manage Account",
"3" => "Manage Users",
"4" => "View Users",
"5" => "New Users",
"6" => "Edit Users",
"7" => "View User",
"8" => "New Module",
"9" => "Edit Module",
"10" => "View Module",
"11" => "New Handbook",
"12" => "Edit Handbook",
"13" => "View Handbook"
);
$this->breadcrumbArray[2] = array(
"1" => "index.php",
"2" => "manage_account.php",
"3" => "manage_users.php",
"4" => "view_users.php",
"5" => "new_user.php",
"6" => "edit_user.php",
"7" => "view_user.php",
"8" => "new_module.php",
"9" => "edit_module.php",
"10" => "view_module.php",
"11" => "new_handbook.php",
"12" => "edit_handbook.php",
"13" => "view_handbook.php"
);
更新
我寫了下面的代碼,但我得到的是我不明白的錯誤。
錯誤:
PHP Notice: Undefined variable: breadcrumbArray in *** on line 90
PHP Fatal error: Cannot access empty property in *** on line 90
代碼:
public function createBreadcrumb($url) {
echo $this->breadcrumbArray[0][0][0];
$retval;
for($i = 0; $i < 100; $i++) {
echo $this->breadcrumbArray[0][0][0];
if($this->$breadcrumbArray[0][$i][0] = $url) {
echo $this->$breadcrumbArray[0][$i][0].'<br/>';
for($x = 1; $x < 100; $x++) {
echo '<a href="'.$this->$breadcrumbArray[2][$x].'">'.$this->$breadcrumbArray[1][$i].'</a>';
}
}
}
}
上述錯誤是由不正確地訪問陣列引起的,
它是$這 - > $ breadcrumbArray
它應該是$ this-> breadcrumbArray
更新2(工作守則)
public function createBreadcrumb($url) {
for($i = 0; $i < (count($this->breadcrumbArray[0]) - 1); $i++) {
if($this->breadcrumbArray[0][$i][0] == $url) {
for($x = 1; $x < count($this->breadcrumbArray[0][$i]); $x++) {
if((count($this->breadcrumbArray[0][$i]) - 1) == $x) {
echo $this->breadcrumbArray[1][$this->breadcrumbArray[0][$i][$x]];
} else {
echo '<a href="'.$this->breadcrumbArray[2][$this->breadcrumbArray[0][$i][$x]].'">'.$this->breadcrumbArray[1][$this->breadcrumbArray[0][$i][$x]].'</a> > ';
}
}
}
}
}
上面的代碼是遠離我曾經寫過的最優雅的事情,但它確實給一個更好的主意,因爲我試圖實現,因爲它確實起作用。任何進一步的建議當然還是非常受歡迎的。
任何幫助非常感謝,謝謝! :D
我在這裏沒有看到任何問題,僅僅是您正在構建的內容的聲明。你有什麼需要幫助的? – Ray
對不起,剛剛意識到我自己正在閱讀它,我已經更新了原來的問題。謝謝雷。 –
我建議你用你試圖構建的函數添加代碼,有人可以幫助你,如果他們看到它的問題。 '爲我請求編寫代碼'通常會被忽視。 – Ray