2015-04-02 17 views
7

Aşağıdaki diziye sahibim.Alt çizgiyi boşluk ve büyük harfle değiştirin. İlk karakter dizisi

$state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh"); 

Ben UpperCase ile bir kelimenin her ilk karakteri ile dizi değerlerini dönüştürmek ve _ yerineboşluk ile istediğiniz

$state = array("Gujarat","Andhra Pradesh","Madhya Pradesh","Uttar Pradesh"); 

Beklenen Çıktı. Ben de bu döngüyü kullanarak yapıyorum ve beklendiği gibi çalışıyor.

foreach($states as &$state) 
{ 
    $state = str_replace("_"," ",$state); 
    $state = ucwords($state); 
} 

Ama sorum şu: gereksinimime göre tüm diziyi dönüştürmek için herhangi bir PHP işlevi var mı?

+1

bir dize oluştururken gibi array_map işlevi kullanmak gerekiyor Beni değiştirin nt işlevi, 'array_map' başka bir yoldur. İyi çalıştığını, neden değiştiğini söyledin? – Ghost

+0

@Ghost Bu 'foreach' döngü ile çalışan bulmak ama ben bunu uygulamak için 'kısa' kodu istiyorum – Sadikhasan

+0

oh tamam, elbette, bu cevaplar yeterli olmalıdır – Ghost

cevap

16

Sen array_map işlevini kullanabilirsiniz. aşağıdaki gibi hemen üstünde işlevini kullanın içinde Sonra

function modify($str) { 
    return ucwords(str_replace("_", " ", $str)); 
} 

:

$states=array_map("modify", $old_states) 
+0

Teşekkürler! İyi çalışıyor ve kodun "kısa" ve "tatlı". – Sadikhasan

+0

Amacımı yerine getirdi. Ama herhangi bir fikir Codeigniter OOPS denetleyicisinde nasıl kullanılır? $ this-> functionname()? –

1

PHP's array_map bir dizinin her öğesi için bir geri arama yöntemi uygulayabilirsiniz:

$state = array_map('makePretty', $state); 

function makePretty($value) 
{ 
    $value= str_replace("_"," ",$value); 
    return ucwords($value); 
} 
1

Kullanım array_map() fonksiyon

<?php 
    function fun($s) 
    { 
     $val = str_replace("_"," ",$s); 
     return ucwords($val); 
    } 
    $state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh"); 
    $result = array_map('fun',$state); 
    print_r($result); 
?> 
4

$state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh"); 
$state = array_map(upper, $state); 
function upper($state){ 
    return str_replace('_', ' ', ucwords($state)); 
} 
print_r($state);// output Array ([0] => Gujarat [1] => Andhra pradesh [2] => Madhya pradesh [3] => Uttar pradesh) 
+1

Kodunuz ayrıca 'kısa' ve 'tatlı' ama geç kaldınız. Teşekkürler – Sadikhasan

+1

Tamam bu kadar yeter ki .. Mutlu Kodlama –

İlgili konular