Sadece yeni bir dizi oluşturma olmadan Laykes çözüm sapmalar:
foreach($array as $key => $val) {
$array["..$key.."] = $val;
unset($array[$key]);
}
Ben böyle bir şey ile şablonu tutucuları değiştiriyorsanız, çünkü bunu yapmak istediğinizi varsayalım:
$template = str_replace(array_keys($person), $person, $template);
Eğer öyleyse, o zaman $ kişi üzerinde iki kez yineleme akılda tutmak. Tuşları ve anahtarları almak için başka bir zaman değiştirmek için bir kez. Bu yüzden yastıklı değerleri olarak anahtarlarını döndürür bir fonksiyonu ile, örneğin array_keys()
çağrısı yerine daha verimli olacaktır gibi bir şey
function array_keys_padded(array $array, $padding) {
$keys = array();
while($key = key($array)) {
$keys[] = $padding . $key . $padding;
next($array);
}
return $keys;
}
// Usage
$template = str_replace(array_keys_padded($person, '::'), $person, $template);
Ama sonra tekrar, sadece de basit bir yineleme ile yapabilirsiniz:
foreach($person as $key => $val) {
str_replace("::$key::", $val, $template);
}
Bunu bu şekilde yapıyor değilse Ama bu cevabı göz ardı :)
Meraktan, nasıl kullanıcılar aslında providing dizisi vardır?