J'ai deux tableaux multidimensionnels. Je veux vérifier chaque élément dans le tableau 1 et voir si elle est en tableau 2 et vice versa.
Par exemple: p> Je veux vérifier par alors quelque chose comme ceci: p> J'ai pensé à faire Comment puis-je y parvenir? p> p> commander code>. p>
foreach code> en boucle pour les deux mais Cela ne me laissera pas savoir
ar code> # il manque. p>
5 Réponses :
Vous pouvez utiliser sortie: p> array_uintersect code> ou
Array_udiff Code>
Pour trouver les valeurs dans chaque matrice qui sont identiques ou différentes en fonction de la valeur de la touche code> de la commande code>: Array
(
[1] => Array
(
[id] => 2
[order] => 33278
)
)
Array
(
[0] => Array
(
[id] => 1
[order] => 123238
)
[2] => Array
(
[id] => 3
[order] => 8892372
)
)
Array
(
[0] => Array
(
[id] => 1
[order] => 123238
)
[2] => Array
(
[id] => 3
[order] => 8892372
)
)
Merci mais ce serait possible de montrer la colonne ID code> aussi?
@Timmybalk Bien sûr - mais si la valeur id code> est différente, même si la valeur
la valeur code> est la même qui doit toujours être comptée comme la même valeur?
Il devrait être compté comme des valeurs différentes mais montrent toujours les deux. Aussi comment est-ce appelé dans la programmation?
Donc, juste pour être clair, pour votre échantillon de données, il y aurait NON i> Valeurs correspondantes entre $R1 code> et
$r2 code>?
Donc, l'identifiant est incrémenté automatique qui est quelque chose que je ne peux pas changer, mais il y aura des valeurs correspondantes de commander code> dans
arr1 code> et
arrate code>. Donc si
id code> est différent, même si
la valeur code> est identique, il ne doit pas être traité comme la même valeur
@Timmybalk Toutes mes excuses pour le silence de la radio ... dormir dormir. Basé sur la réponse que vous avez acceptée, je pense que cela pourrait être une méthode plus simple pour atteindre le résultat souhaité.
Je vous remercie beaucoup pour votre aide! :)
Essayez quelque chose comme ceci:
foreach ($arr1 as $arrone){ foreach ($arr2 as $arrtwo) { if (!in_array($arrone['order'], $arrtwo)) { echo "abc "; } } }
Il est également possible de le faire avec foreach code> trop non?
Probablement. Gimmie une sece je vais essayer de le faire
@Timmybalk j'ai édité ma réponse, maintenant il y en a un avec foreach code> aussi
Vous pouvez aborder comme celui-ci en utilisant exemple: - array_column code> et
array_intersect_key code>
Comment obtenez-vous ceux qui sont dans arr1 code> mais pas dans
arr2 code> et vice versa?
Oui cela fonctionne, mais consultez ceci: 3v4l.org/dwvmo . Arr2 code> n'est plus associatif. Comment puis-je comparer maintenant?
@Timmybalk Vérifiez ceci pour plus de détails: 3v4l.org/nttpl
Ok merci mais qu'en est-il de cela? 3v4l.org/dwvmo Comment puis-je faire ce travail? Le $R2 code> est simplement une matrice régulière, pas une matrice associative. J'ai juste besoin de ça pour travailler
@Timmybalk Dans le deuxième cas, vous pouvez utiliser comme celui-ci 3v4l.org/f2ga5 , 3v4l.org/hrvm8
Aussi, pourquoi utilisez-vous array_commine code> sur
arrate code> et
arr2 code>? Pourquoi combinez-vous le même tableau?
@Timmybalk array_commine code> pour le faire clés => valeurs
Vous pourriez utiliser Array_UItersect avec une fonction de rappel personnalisé Pour vérifier la valeur ou la commande code> pour obtenir toutes les intersections.
Array ( [1] => Array ( [id] => 2 [order] => 33278 ) ) Array ( [0] => Array ( [id] => 1 [order] => 123238 ) [2] => Array ( [id] => 3 [order] => 8892372 ) ) Array ( [0] => Array ( [id] => 1 [order] => 349483 ) [1] => Array ( [id] => 2 [order] => 9837283 ) )
Ignorez vos identifiants, construisez une liste des numéros de commande à partir de votre deuxième tableau, puis boucle via votre matrice initiale pour vérifier si le numéro de commande n'est pas contenu dans:
Données:
p> méthode: p> sortie: p> 123238 order number is not contained
8892372 order number is not contained
Utilisez In_array () Fonction Ça devrait fonctionner pour vous.
Une approche serait la suivante: cartographier les deux tableaux sur leur commande, puis utiliser
array_diff code> pour calculer la différence entre les deux.
in_array code> fonctionne si l'identifiant est différent?
De plus, comme une tête en tête, vous ne devez pas utiliser des chaînes supposées comme indices de votre réseau.
Vous devriez probablement ajouter quelques guillemets à
ID code> et
commander code> où vous définissez le tableau.