我有一个像这样的php数组:
array(3) {
[0]=> string(12) "server[edit]"
[1]=> string(14) "server[create]"
[2]=> string(12) "user[delete]"
}
我想将其转换为不同的数组 - 例如一个名为server的数组,其中包含“edit”和“create” - 另一个数组“user”包含“delete”。
这是正确的模式吗?
感谢您的帮助!
答案 0 :(得分:2)
不是尝试对整个数组使用正则表达式,而是尝试匹配每个单独的值。看一下这个例子
$array = array(
'server[edit]',
'server[create]',
'user[delete]',
'dsadsa'
);
$newArray = array();
foreach($array as $value)
{
preg_match("~^(\w+)\[(\w+)\]$~", $value, $matches);
if(count($matches))
{
$key = $matches[1];
if(!isset($newArray[$key]))
$newArray[$key] = array();
$newArray[$key][] = $matches[2];
}
}
var_dump($newArray);