使用了哪个分隔符?

时间:2011-10-12 11:55:15

标签: php split explode delimiter

我需要用不同的分隔符分割字符串。所以我找到了&使用此代码:

function explodeX($delimiters,$string)
{
    $return_array = Array($string);
    $d_count = 0;
    while (isset($delimiters[$d_count]))
    {
        $new_return_array = Array();
        foreach($return_array as $el_to_split)
        {
            $put_in_new_return_array = explode($delimiters[$d_count],$el_to_split);
            foreach($put_in_new_return_array as $substr)
            {
                $new_return_array[] = $substr;
            }
        }
        $return_array = $new_return_array;
        $d_count++;
    }
    return $return_array;
} 

它工作正常,但现在,我需要反转它并找到它实际使用的分隔符。 我使用过这种线:

$val=explodeX(array("+","-","*","/"), $input);

现在,我需要返回正确的分隔符。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用了您在$delimiters中设置的所有分隔符,如下一行所示:

while (isset($delimiters[$d_count]))

$d_count在循环底部递增$d_count++,并在循环遍历所有分隔符后返回$return_array,与$string分开。指定了。

要将正确的分隔符放回原来的位置,除非您修改在$return_array中返回的信息,否则不能。这样的东西就是你要找的东西:

$return_array[] = $new_return_array;
$delim = $delimiters[$d_count];
$return_array['delim'] = new Array();
$return_array['delim'][$delim][] = $new_return_array;
$d_count++;

这会将每个分隔符分隔的单词存储在返回结果的delim索引下的子数组中。然后你需要做的就是将这些内容逼回来:

$string2 = '';
foreach ( $return_array as $delim => $word )
{
    // not sure how to reverse your function at this moment, will get back with this part...
}