Reputation: 190
I got an php array like this:
array(3) {
[0]=> string(12) "server[edit]"
[1]=> string(14) "server[create]"
[2]=> string(12) "user[delete]"
}
I want to convert this to different arrays - for example an array named server with "edit" and "create" in it - and another array "user" with "delete".
Whats the right pattern for that ?
Thanks for any help!
Upvotes: 0
Views: 165
Reputation: 5062
Rather than trying a regex against the whole array, try matching against each individual value. Take a look at this as an example
$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);
Upvotes: 2