2013-07-30 24 views
6

Ich habe 2 Arrays ein mit Platzhalter, der Schlüssel in einem anderen Array sindmit Werten aus anderen Array

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

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

So wie kann ich auf arr1 laufen und ersetzen Platzhalter mit einem Wert von arr2?

Antwort

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

fehlt ein '' '? –

+0

+1 das war cool –

+0

danke, wie es +1 –

0

Sicher, hier ist eine Möglichkeit, es zu tun. Es braucht aber ein wenig Liebe und 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 
); 
Verwandte Themen