2013-05-13 109 views
0

替换文本关联数组文本我有一个像这样从另一个阵列

$tags = 

Array 
(
    [0] => Array 
    (
     [0] => [first_name] [last_name] 
     [2] => [city],[state] [zipcode] 
    ) 

) 

一个阵列我也有像这样

$array_list = 

    [0] => Array 
    (
     [first_name] => Bob 
     [last_name] => Johnson 
     [city] => mycity 
     [state] => NY 
     [zipcode] => 911564 
    ) 

[1] => Array 
    (
     [first_name] => John 
     [last_name] => Doe 
     [city] => New York 
     [state] => NY 
     [zipcode] => 9115 

    ) 

[2] => Array 
    (
     [first_name] => James 
     [last_name] => Belt 
     [city] => Los Angeles 
     [state] => CA 
     [zipcode] => 915456 
    ) 

我基本上要全部更换里面的标签列表括号中包含数组中的实际值。我尝试以下,但它只是似乎又回到了正确返回一个值

foreach($tags as $key=>$value) { 
    $data[$key] = preg_replace_callback('/[\[|<](.*)[\]\)]/U', 'replace_text', $value); 
} 



function replace_text($matches) { 
    foreach ($array_list as $arg) { 
     return $args[$matches[1]]; 

    }   

    } 

我只是在取回一个结果,看起来像这样

Array 
(
    [0] => Array 
    (
     [0] => Bob Johnson 
     [1] => mycity,NY 911564 
    ) 

) 

我怎么能做到这一点,使我得到的所有与所有的正确值的数组中的结果返回

我试图改变功能REPLACE_TEXT将值设置为一个数组并返回,像这样

数组

但这返回

Array 
(
[0] => Array 
    (
     [0] => Array Array 
     [1] => Array 
     [2] => Array,Array Array 
    ) 

) 

我还要补充一点,所有这些内容是动态的,所以一次也可能是[FIRST_NAME]和下[name_first]或somethign否则这就是为什么我需要地精在括号内,并用括号中的数字替换括号内的文字。

回答

1

你觉得这是什么:

$output = array(); 
foreach($array_list as $arraykey => $array) { 
    foreach($tags[0] as $tagkey => $tag) 
     $output[$arraykey][$tagkey] = preg_replace_callback('/[\[|<](.*)[\]\)]/U', 'replace_text', $tag); 
} 

function replace_text($matches) { 
    global $arraykey, $array_list; 
    return $array_list[$arraykey][$matches[1]]; 
} 

如果它不适合你,你可以显示预期的$输出?

+0

是的!!!这正是我需要非常感谢的 – Yeak 2013-05-13 23:40:59