从具有以下值分隔的值的数组中获取数据:

时间:2018-11-30 12:45:08

标签: php arrays

我在表中有一些数据,这些数据之间用:分隔:

我想做的是创建一个所有表数据的数组,然后分解碰巧被分隔的数据:

例如 我的表格包含以下各列 pid,mid,uid,权限

现在行的数据通常看起来像这样

1,2,0,View:Add 
2,3,0,View:Add:Edit 
3,4,0,View:Add:Edit:Delete
4,5,0,View

现在,我已经为权限创建了数组,并得到了输出

    Array
(
    [0] => View:Add
    [1] => View:Add
    [2] => View:Add
    [3] => View:Add
    [4] => View:Add
    [5] => View:Add
    [6] => View:Add
    [7] => View
    [8] => View
    [9] => View:Add:Edit:Delete:Export
    [10] => View
    [11] => View
    [12] => View:Add:Edit:Delete:Export
)

但是,我理想中想要的是能够在处爆炸数据: 然后我想在此时做一些功能 因此[0] => View:Add 会给我类似的东西

index[0]
View - some other data here
Add - some other data here
index[12]
View - some other data here
Add - some other data here
Edit - some other data here
Delete - some other data here

等-您有个大概的想法

但是爆炸线只是给我一个字符串错误数组 参见下面的代码

$permq = mysqli_query($dbc,"SELECT * FROM `permissions` WHERE `uid` = '$_SESSION[userid]'");
$permcheck = mysqli_fetch_assoc($permq);
$allowedmodules = array();
$modperms = array();
$shortnames = array();

do 
{
$short = mysqli_query($dbc,"SELECT * FROM `modules` WHERE `mid` = '$permcheck[mid]'");
$permission = explode(":",$permcheck['permissions']);
array_push($allowedmodules,$permcheck['mid']);  
array_push($modperms,$permcheck['permissions']);    
array_push($shortnames,$short['shortname']);
} while($permcheck = mysqli_fetch_assoc($permq));


foreach($modperms as $value)
{
$data = explode(":",$value);
echo $value."<br>" ;
}

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望该数组的每个元素都是另一个数组,其中该子数组的每个元素的值都用:分隔吗?

如果是这样,则可以遍历数组,并使用explode()函数将每个值转换为子数组,如下所示:

for ($i = 0; $i < count($modperms); $i++)
{
    $modperms[i] = explode(":", $modperms[i]);
}

print_r($modperms);

我理解您的问题正确吗?

答案 1 :(得分:0)

如果我能得到想要的东西(还不太清楚),那就是

"stopOnEntry"