0

$subject_array ポインタの位置は preg_replace_callback のコールバック関数でどのように決定されますか? つまりテンキーとは?例えば

$final_array = preg_replace_callback("/pattern/",
    create_function(
        '$matches',
        '[WHAT IS MY ARRAY POSITION? ($foo = ...)]; return $foo);'
    ), $subject_array);

編集

Foo、Bar、baZが欲しい。以下は機能しません。

$rgData = array('foo', 'bar', 'baz');
$rgData = preg_replace_callback('/(\w)(\w)(\w)/', 
    function($rgMatches) use (&$rgData)
{
    var_dump(key($rgData));//see this debug
    next($rgData);
    if (key($rgData)==2) {
        return strtoupper($rgMatches[2]);
    } else {
        return strtoupper($rgMatches[0]);
    }
}, $rgData);
    var_dump($rgData);//see this debug

または、もっと簡単に言うと、Foo、bAr、baZ が必要です。

$rgData = array('foo', 'bar', 'baz');
$rgData = preg_replace_callback('/(\w)(\w)(\w)/', 
    function($rgMatches) use (&$rgData)
{
    var_dump(key($rgData));//see this debug
    next($rgData);
    return strtoupper($rgMatches[key($rgData)]);
}, $rgData);
    var_dump($rgData);//see this debug
4

1 に答える 1

0

あ、アルマ、助けてくれてありがとう。あなたが私を理解していないかもしれない理由を見つけました。私が探していた答えはあまりにも簡単でした。答えは key() です。お手数をおかけして申し訳ありません。ありがとう!

于 2013-09-30T10:40:30.140 に答える