2013-07-30 67 views
6

tôi có 2 mảng một với placeholder đó là chìa khóa trong một mảngThay thế placeholders trong mảng với giá trị từ mảng khác

arr1 = array(
    "id"  => "{{verticalId}}", 
    "itemPath" => "{{verticalId}}/{{pathId}}/"); 

arr2 = array(
     "verticalId" => "value1", 
     "pathId"  => "value2"); 

Vì vậy, làm thế nào tôi có thể chạy trên arr1 và thay thế placeholders với giá trị từ arr2?

Trả lời

5
foreach ($arr1 as $key => &$value) { 
    $value = preg_replace_callback('/\{\{(.*?)\}\}/', function($match) use ($arr2) { 
     return $arr2[$match[1]]; 
    }, $value); 
} 
+0

thiếu một '''? –

+0

+1 thật thú vị –

+0

thanx, giống như +1 –

0

Chắc chắn, đây là một cách để thực hiện. Tuy nhiên, cần một chút tình yêu và PHP 5.3+

<?php 
$subject = array(
    'id' => '{{product-id}}' 
); 

$values = array(
    'product-id' => 1 
); 

array_walk($subject, function(& $item) use ($values) { 
    foreach($values as $template => $value) { 
     $item = str_replace(
      sprintf('{{%s}}', $template), 
      $value, 
      $item 
     ); 
    } 
}); 

var_dump(
    $subject 
); 
Các vấn đề liên quan