獲取與正則表達式陣列我得到了一個PHP數組是這樣的:從字符串
array(3) {
[0]=> string(12) "server[edit]"
[1]=> string(14) "server[create]"
[2]=> string(12) "user[delete]"
}
我想將其轉換爲不同的陣列 - 例如命名服務器「編輯」,並在其「創造」一個數組 - 和另一個數組「用戶」與「刪除」。
什麼是正確的模式呢?
感謝您的幫助!
獲取與正則表達式陣列我得到了一個PHP數組是這樣的:從字符串
array(3) {
[0]=> string(12) "server[edit]"
[1]=> string(14) "server[create]"
[2]=> string(12) "user[delete]"
}
我想將其轉換爲不同的陣列 - 例如命名服務器「編輯」,並在其「創造」一個數組 - 和另一個數組「用戶」與「刪除」。
什麼是正確的模式呢?
感謝您的幫助!
與其嘗試針對整個數組的正則表達式,嘗試匹配每個單獨的值。以此爲例
$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);
謝謝你!我可以使用 – Aaroniker 2014-11-25 00:45:53
你的'?'只適用於'\]',而反斜槓錯位。我認爲你的意思是寫'〜^(\ w +)(?:\ [(\ w +)\])?$〜' – 2014-11-25 00:51:29
@LucasTrzesniewski是的,你說得對嗎?和\。我不想要?:但是,因爲我希望第二次捕獲是我插入到數組中的值。我認爲這是OP的目標是 – 2014-11-25 00:54:22
您爲什麼認爲正則表達式是此工作的工具? – 2014-11-25 00:29:37
是我的第一個想法,所以它可以過濾「服務器」和行動「編輯」或「創建」(但是,我不知道如何) - 是否有另一種解決方案? – Aaroniker 2014-11-25 00:31:54
http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Mihai 2014-11-25 00:32:04