2015-04-02 11 views
7

Ho la seguente matrice.Sostituisci underscore con spazio e maiuscolo prima carattere nell'array

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

Output previsto

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

voglio convertire valori di matrice con ogni primo carattere di una parola con UpperCase e sostituire _ con spazio. Quindi lo faccio usando questo ciclo e funziona come previsto.

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

Ma la mia domanda è: c'è qualche funzione PHP per convertire l'intero array come da mio requisito?

+1

creare una stringa Rimpiazzami funzione nt, 'array_map' è un altro modo. hai detto che funziona bene, perché il cambiamento? – Ghost

+0

@Ghost Funziona con il ciclo 'foreach' ma voglio codice' short' per implementarlo – Sadikhasan

+0

oh okay, certo, quelle risposte qui sotto dovrebbero essere sufficienti – Ghost

risposta

16

È possibile utilizzare la funzione array_map.

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

Poi basta usare la funzione di cui sopra come segue:

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

Grazie! Funziona bene e il tuo codice 'short' e' sweet'. – Sadikhasan

+0

Soddisfatto il mio scopo. Ma qualche idea su come usarlo nel controller in Codeigniter OOPS? $ this-> functionname()? –

1

PHP's array_map può applicare un metodo di callback per ciascun elemento di un array:

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

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

Usa array_map() funzione

<?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

Necessità di utilizzare array_map funzione come come

$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

Il tuo codice anche 'short' e' sweet' ma sei in ritardo. Grazie – Sadikhasan

+1

È ok, ti ​​piace così tanto ... Buona Coding –

Problemi correlati