-3

何らかの理由で、この種の配列があり、各キーの最初の 2 つの部分を抽出したいのですが、キーの中には「,」で区切られた 5 つの文字列が含まれているものもあれば、「,」で区切られた 2 つの文字列が含まれているものもあります。元:

array (
    'kksgzgg , kdhdhk',
    'jjj , jjd , jsjs , sjsj , jjsjs',
    'kksksk , kdkdkk',
    'jjj , jjd , jdjdjdj , jjd , jdjdjddj',
    'jjj , jjd , jdjdj , jjsj , sjsjsj',
    'jjj , jjd'
);

結果として、各キーに2つの要素しかない(コンマで区切られた)次のようなものが必要です。

Array ( 
    [0] => kksgzgg , kdhdhk 
    [1] => jjj , jjd  
    [2] => kksksk , kdkdkk  
    [3] => jjj , jjd  
    [4] => jjj , jjd  
    [5] => jjj , jjd  
) 

ご協力ありがとうございました

4

3 に答える 3

2

私の他の解決策に代わるものは、使用することです

例:

$newArray = preg_replace(
    '/
        (             # capture any string
            [^,]*     # that is not a comma
            ,         # up to a comma
            [^,]*     # followed by any character not a comma
        )             # into group $1
        .*            # followed by any amount of characters
    /x',
    '$1',
    $oldArray
);

インライン ドキュメントがない場合:

$newArray = preg_replace('/([^,]*,[^,]*).*/', '$1', $oldArray);
于 2013-05-06T10:22:19.610 に答える