Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据库中的PHP多维数组_Php_Arrays_Multidimensional Array - Fatal编程技术网

数据库中的PHP多维数组

数据库中的PHP多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想输出一个来自数据库的三维数组。这是我的数据库,看起来像: 基本上,我希望我的第一个数组将是头\u名称,头\u名称下将出现子\u头\u名称,然后下面是名称 例如: 这是我的密码: $getAllPermission = Permission::get(); $arrHeader = array(); $arrSubHeader = array(); $arrPermissions = array(); // $x = 0; foreach($getAllPermission as $valu

我想输出一个来自数据库的三维数组。这是我的数据库,看起来像:

基本上,我希望我的第一个数组将是
头\u名称
,头\u名称下将出现
子\u头\u名称
,然后下面是
名称

例如:

这是我的密码:

$getAllPermission = Permission::get();
$arrHeader = array();
$arrSubHeader = array();
$arrPermissions = array();
// $x = 0;
foreach($getAllPermission as $value){
    $title = $value->header_name;
    $sub_header_name = $value->sub_header_name;
    $permission_name = $value->name;
    if ($sub_header_name == ""){
        $sub_header_name = 0;
    }
    array_push($arrPermissions,$permission_name);
    $arrHeader[$title] = array($sub_header_name => array($arrPermissions));
    //$x++;

}
我的输出是这样的:


每次通过循环,您都在推送相同的
$arrpowpermissions
数组,这就是为什么每个角色都会得到一个越来越长的权限数组副本

每次通过循环时都会覆盖
$arrHeader[$title]
,而不是向循环中添加一个新键

对于空的
sub\u header\u name
,您所需的输出有一个键
'
,因此我不明白为什么您有设置
$sub\u header\u name=0的
if

它应该是:

foreach ($getAllPermissions as $value) {
    $arrHeader[$value->header_name][$value->sub_header_name][] = $value->name;
}

StackOverflow不是免费的编码服务。所以我希望你能。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并回答:)这个问题可能会让你找到正确的方向:我为这个错误感到抱歉。我不小心按了“回车”哦,因为被覆盖了,所以我没有得到正确的数据。无论如何,谢谢你
foreach ($getAllPermissions as $value) {
    $arrHeader[$value->header_name][$value->sub_header_name][] = $value->name;
}