|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
|
[PHP] Replace su un array multidimensionale
Salve a tutti,
premesso che il mio progetto riguarda Wordpress, ma il mio dubbio / problema riguarda PHP. Ho il seguente array: Codice:
[id] => user-info [title] => Foto del profilo di admin admin [parent] => user-actions [href] => http://nomesito.it/wp-admin/profile.php [group] => [meta] => Leggo il "node" che interessa: Codice:
$user_info_new_link = $wp_admin_bar->get_node('edit-profile'); $user_info_new_link mi ristituisce l'array sopra. Vorrei eseguire un semplice replay del title, tramite: Codice:
$user_info_new_link->title = str_replace('admin', 'Modifica il tuo profilo', $user_info_new_link->title); Il replace non va, non riesco a salvare il valore di title per eseguire il replace. Ho provato anche con $user_info_new_link['title'] ma niente da fare... Grazie. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Non conosco wordpress, ma guardando il codice della funzione get_node si apprende che ogni volta che viene invocata restituisce una copia dell'oggetto richiesto:
Codice:
final public function get_node( $id ) { if ( $node = $this->_get_node( $id ) ) return clone $node; } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
|
Ok, mi sta bene, tramite
Codice:
$user_info_new_link->title = new_string; Ma come faccio ad eseguire un str_replace e salvare in una variabile il valore attuale di 'title'? Grazie. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Codice:
$variabile = $user_info_new_link->title; $user_info_new_link->title=str_replace(...); Oppure Codice:
$user_info_new_link->title=str_replace(...); $variabile = $user_info_new_link->title; |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
|
Daniels, avevo già provato la tua indicazione, ma non va...
Ho risolto così: Codice:
foreach( $user_info_new_link as $key => $value ) { if( $key == 'title' ) { str_replace('admin', 'modifica il tuo profilo', $value ); } } ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Tutto ciò ha dell'assurdo, str_replace restituisce una nuova stringa, non modifica la stringa di input, in quel modo il risultato della sostituzione viene scartato. O non hai postato il VERO codice oppure... boh, non riesco ad immaginare alternative.
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1021
|
Scusami, ho commesso un errore nel copia-incolla:
Codice:
foreach( $user_info_new_link as $key => $value ) { if( $key == 'title' ) { $user_info_new_link->title = str_replace('admin', 'Modifica il tuo profilo', $value ); } } ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:26.