我想为我的PHP应用程序创建分层枚举,考虑到以下内容:
abstract class User_Roles extends Enum {
const Administrator = "";
const Account_Manager = "Administrator";
const BlogAuthor = "Account_Manager";
const CommentManager = "Account_Manager";
}
我正在使用这个枚举类:SO。
因此,每个子项都有其父节点作为其值。
这是我如何实现的:
$constants = $reflector->getConstants();
foreach ($constants as $key => $value) {
if ($value == "") {
$returnHierarchy[$key] = array();
continue;
}
$returnHierarchy[][$value] = $key;
}
但是我创建多维数组时遇到了一些问题。
它应该像这样:
[Administrator]
{
[Account_Manager]
{
[BlogAuthor]
[CommentManager]
}
}
但我最终会陷入这样的困境:
array(4) (
[Administrator] => array(0)
[0] => array(1) (
[Administrator] => (string) Account_Manager
)
[1] => array(1) (
[Account_Manager] => (string) BlogAuthor
)
[2] => array(1) (
[Account_Manager] => (string) CommentManager
)
)
我是否有什么误解或忽略了什么?