2013-07-11 19 views
0

我不知道這是否可以用了preg_replace做一個字符串,但是這是我迄今爲止替換所有值使用的preg_replace與回調

$string=' 
<div class="row"> 
    <section> [1] </section> 
    <section> [2] </section> 
    <section> [5] </section> 
</div>'; 


function searchArray($myarray, $id) { 
    foreach ($myarray as $item) { 
     if ($item[$id] == $id) 
      return $item['name']; 
    } 
    return false; 
} 

所以我需要運行通過的preg_replace $字符串其中[]之間的每個變量將對應於存儲在多維數組中的實際ID。這是函數searchArray()進來的地方。基本上運行字符串,用實際ID和字段的打印名稱替換[]。當我一次遞交表格時,所有這些都需要發生。

回答

1

如何這樣的事情來替代*的preg_replace * ...

$arr = array('apple', 'pear', 'bananna', 'orange', 'grapefruit', 'pineapple'); 
$string=' 
<div class="row"> 
    <section> [1] </section> 
    <section> [2] </section> 
    <section> [5] </section> 
</div>'; 

foreach($arr as $key => $value){ 
    $string = str_replace($key, $value, $string); 
} 

UPDATE

$arr = array(
    array('id'=>1, 'name'=>'matthew'), 
    array('id'=>2, 'name'=>'william'), 
    array('id'=>3, 'name'=>'john'), 
    array('id'=>4, 'name'=>'george'), 
    array('id'=>5, 'name'=>'henry'), 
    array('id'=>6, 'name'=>'jason') 
); 
$string=' 
<div class="row"> 
    <section> [1] </section> 
    <section> [2] </section> 
    <section> [4] </section> 
    <section> [1] </section> 
</div>'; 
foreach($arr as $key => $subArr){ 
    $string = str_replace("[".$subArr['id']."]", $subArr['name'], $string); 
} 
+0

這是行不通的。它是多維數組,每個[]需要匹配實際的ID,而不是用對應的名稱值替換 – Mike

+1

那麼您想要替換哪個ID?如果它是多維的,那麼它將以'[] []'?的形式出現。 – Steven

+0

好的,我用更多的代碼更新了我的答案(如果我現在明白你打算做的事)應該是你要找的。 – Steven