将字符串转换为带有键和值的多维数组



我正在编写一个PHP函数,我想问一个问题。我以特定方式爆炸字符串时遇到问题。我试图在下面尽可能解释。

这是怎麽?

井。。我正在研究一种解决方案来减少我网站上的表格数量。我可以将管理员权限表转换为用户表中的一个字段。但是,我需要在加载网站时将文本字段分解为数组。代码如下所示:

<?php
$string = "server1=(ban=(perm=false,normal=true),edit=true,delete=false),adminlog=true,server2=(ban=(perm=false,normal=true),edit=false,delete=true)";
function parseRights( $s="" ){
 $context = array();
 // code here
}
print_r(parseRights($string));
?>

基本上,我希望结果是:

Array
(
    [server1] => Array
        (
            [ban] => Array
                (
                    [perm] => false
                    [normal] => true
                )
            [edit] => true
            [delete] => false
        )
    [adminlog] => true
    [server2] => Array
        (
            [ban] => Array
                (
                    [perm] => false
                    [normal] => false
                )
            [edit] => false
            [delete] => true
        )
)

真和假应该是 PHP 真和假。如果这样写出来,我知道它会显示 1 在哪里 true 在哪里,而 0 在哪里什么都没有。.但这只是为了向您展示我希望数组在运行函数后的样子。我希望它能够创建一个"无限"数组,每个新括号创建一个新数组。当然,如果函数以相同的方式工作,我很乐意接受其他方法来区分正确的权利。

只是为了帮助你一点。 最好是使用存储每个功能部分的相关表,例如与服务器表或类似内容相关的禁止表和权限表。 如果您不打算将其正确存储在数据库中,至少可以省去一些麻烦:

$array = array('server1'=>array('ban'=>array('perm'=>false,'normal'=>true),'edit'=>true,'delete'=>false));
$string = json_encode($array);
echo $string;
/*
{"server1":{"ban":{"perm":false,"normal":true},"edit":true,"delete":false}}
*/
$new_array = json_decode($string, true);
var_export($new_array);
/*
array
 (
  'server1' =>
  array (
    'ban' =>
    array (
      'perm' => false,
      'normal' => true,
    ),
    'edit' => true,
    'delete' => false,
  ),
)
*/

看看 JSON 字符串看起来与您的字符串非常相似吗? 您也可以使用serialize()但JSON是标准化和可移植的。

此外,var_dump()var_export()将显示实际存储truefalseprint_r()只是没有显示正确的类型。

相关内容

  • 没有找到相关文章

最新更新