正则表达式到字符串问题的数组

时间:2015-06-21 14:18:23

标签: php arrays regex

RegEx有点问题, 我有字符串

AM.name:ASC,AMAdvanced.start:DESC,

AMAdvanced.start:DESC,AM.Genre:Action

需要将它们分解为

array(0){

AM.name => ASC,

AMAdvanced.start => DESC
}

and 

array(0){

AMAdvanced.start => DESC,

AM.Genre => Action

}

任何帮助都会很棒,因为正则表达式是全新的

3 个答案:

答案 0 :(得分:2)

此处不需要regex

步骤:

  1. explode以逗号,
  2. 开头
  3. 循环爆炸array
  4. Explode冒号:
  5. 推送到新的array
  6. 代码:

    $newArr = array();
    foreach (explode(',', trim($str, " ,")) AS $el) {
        $el = explode(':', $el);
        $newArr[$el[0]] = $el[1];
    }
    print_r($newArr);
    

答案 1 :(得分:0)

您可以先使用换行符分割文字:

 var arr = data.split('\n');

然后遍历您的数组并使用str.replace方法处理您的项目:

var i;
for (i = 0; i < arr.length; ++i) {

 alert(arr[i].replace(/(\w+):(\w+)/g, '$1=>$2'));

}

您还可以使用,分割每个项目的结果:

var i;
for (i = 0; i < arr.length; ++i) {

 var temp=arr[i].replace(/(\w+):(\w+)/g, '$1=>$2');
 alert(temp.split(','));
}

答案 2 :(得分:0)

这将创建一个带有条目

的单个数组
<?php
$dir = array();
$strArray = array('AM.name:ASC,AMAdvanced.start:DESC','AMAdvanced.start:DESC,AM.Genre:Action');
foreach ($strArray as $i => $str) {
    $el = explode(',', $str);
    foreach ($el as $e) {
        $dir[$i][] = explode(':',$e);
    }
}
print_r($dir);