Comment mettre à jour spécifique de la valeur de clé dans un tableau associatif en PHP?
J'ai un tableau associatif nommé $data
Array
(
[0] => Array
(
[transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
[transaction_no] => 19500912050218
[transaction_total_amount] => 589.00
[transaction_date] => 1335932419
[transaction_status] => cancelled
)
[1] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 36010512050819
[transaction_total_amount] => 79.00
[transaction_date] => 1336476696
[transaction_status] => cancelled
)
[2] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 19020512050820
[transaction_total_amount] => 299.00
[transaction_date] => 1336476739
[transaction_status] => cancelled
)
[3] => Array
(
[transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
[transaction_no] => 27050512050821
[transaction_total_amount] => 79.00
[transaction_date] => 1336476927
[transaction_status] => cancelled
)
[4] => Array
(
[transaction_user_id] => 8e9050a3646c98342b9ba079fba80982
[transaction_no] => 12070512050822
[transaction_total_amount] => 129.00
[transaction_date] => 1336477032
[transaction_status] => cancelled
)
)
et je veux convertir la valeur de la clé de [transaction_date]
en format lisible par l'utilisateur (c'est à dire jj/mm/aaaa). Pour cela, j'ai écrit le code suivant dans une fonction qui renvoie l'ensemble du tableau:
foreach($data as $value)
{
$value[transaction_date]=date('d/m/Y',$value[transaction_date]);
}
return $data;
Mon problème est que je reçois le même tableau sans modification de la valeur de [transaction_date]
pour tous les éléments du tableau. En fait un tableau avec les valeurs mises à jour pour [transaction_date]
est censé être retourné.
Quelqu'un peut-il m'aider à résoudre ce problème? Merci à l'avance.
- Vous devez utiliser des guillemets autour de vos noms de clé!
- À venir à partir de javascript, ce qui semble dur comme de la procédure pour s'adapter à php pour des tâches simples
Vous devez vous connecter pour publier un commentaire.
Changer votre foreach à quelque chose comme ceci, Vous ne sont pas de l'affectation des données de retour à votre variable de retour
$data
après l'exécution de l'opération sur que.Codepad DÉMO.
Ce sera trop de travail!
Yay pour les alternatives!
accepted answer
par @Rikesh œuvresindirectly
pour des raisons qui ne sont pas évidentes, c'est à dire pour beaucoup, il pourrait ressembler à un) fonctionne, mais en fait, b) qui se passe, quand vous en avez besoin c) tout au long de.. @naomik réponse est la bonne. "c)" et alors que "a)" ne fonctionne, il n'est pas le chemin à parcourirPHP array_walk() fonction est précisément pour la modification de la matrice.
Essayez ceci:
Utilisation array_walk_recursive fonction de multi-confessionnelle tableau.
as &$value
! Voir ma réponse pour plus de détails!Cela une seule solution, dans la mesure où your_field est un domaine qui va définir et nouvelle_valeur est un nouveau champ de valeur, qui peuvent d'une fonction ou d'une valeur unique
Dans votre cas nouvelle_valeur sera une fonction date ()