D'attribuer de la valeur à partir d'un tableau associatif php dans un autre tableau
J'ai une variable $params
qui récupère les données de la base de données:
$params = mssql_fetch_array($result)
Pour autant que je sais, c'est un tableau associatif. Je veux un autre tableau $tempParams
pour contenir la valeur de ce tableau. Puis-je attribuer à l'aide de l'instruction suivante:
$tempParams = $params
En outre, ai-je besoin d'un seul état à déclarer et à attribuer une valeur à $tempParams, ou peuvent-ils être séparés?
Encore une question que je voudrais poser, c'est qu'à la suite de l'énoncé est correct;
Alors que $tempParams contient des valeurs;
$params['column1'] = $tempParams['newColumns']
Vous devez vous connecter pour publier un commentaire.
Oui,
Va copier toutes les valeurs de $params à $tempParams.
Quant à savoir si ou non votre tableau est associative, lire la documentation sur mysql_fetch_array()
Aussi loin que l'attribution de passe, vous pouvez réellement mettre dans une déclaration
Ce test simple montre que, lorsque vous faites une mission de ce genre, les deux variables sont des copies séparées et non pas les références.
$b[1]
, dans votre exemple,$a
et$b
ne sont pas des copies séparées.Oui, l'opérateur = copie le tableau exactement.
Vous pouvez vérifier vous-même:
Il n'y a pas une telle chose comme “déclarer” les variables en PHP, mais si vous le souhaitez-à-dire que $tempParams est un tableau quelque part avant de l'affecter, vous pouvez le faire comme ceci:
Cela rendra $tempParams un tableau de n éléments à l'intérieur.
Pour les tableaux numériques et associatif, l'opérateur = une copie de la variable. Et les deux variables sont complètement indépendants l'un de l'autre. Toutefois, lorsque vous traitez avec des objets, l'opérateur = crée une référence à l'objet, et les deux variables point à l'exact le même objet.
Oui vous pouvez, mais qui pourrait causer une sorte d'aliasing si vous avez affaire à des Objets (selon la version de PHP que vous utilisez).
Pourquoi est-ce que vous voulez copier le tableau? Ne pouvez-vous pas travailler avec la même variable d'origine ($params)?