J'essaie de prendre deux enregistrements d'une table et de les comparer pour déterminer ce qui pourrait être considéré comme un conflit de fusion, ce qui doit être ignoré, et ce que peut être fusionné automatiquement sans conflit.Montrer ce qui pourrait être fusionné, est vide, et existe dans un tableau
J'ai une table de clients et que vous souhaitez effectuer les opérations suivantes:
- client un client et deux sont vides - ignorer
- un client dispose de données - ok pour se fondre dans un
- les clients avoir des données - laisser l'utilisateur décider
Je voudrais prendre cette information et la passer à une vue où je peux montrer des contrôles pour laisser l'utilisateur décider quoi faire.
Je suis venu avec ce qui suit, mais je ne suis pas très bon avec les fonctions de tableau de PHP et pourrait être en mesure d'utiliser quelque chose de mieux ou plus efficace?
$results = [];
foreach ($client_first as $key => $value){
if (empty($value) && empty($client_second[$key])) {
$results['ignore'][] = $key;
} elseif (!empty($value) && empty($client_second[$key])) {
$results['merged'][$key] = $value ? $value : $client_second[$key];
} elseif (empty($value) && !empty($client_second[$key])) {
$results['merged'][$key] = $value ? $value : $client_second[$key];
} elseif (!empty($value) && !empty($client_second[$key])) {
$results['conflicts'][] = $key;
}
}
Je ne suis pas marié à ce qui précède. Donc, toutes les suggestions seraient les bienvenues.
Les deux tableaux seraient quelque chose comme:
Premier tableau:
array:8 [
first_name => "John"
last_name => "Doe"
middle_initial => null
email => null
cell_phone => null
education_level => null
gender => "Male"
race => "White"
]
tableau Second:
array:8 [
first_name => "Johnn"
last_name => "Does"
middle_initial => null
email => null
cell_phone => null
education_level => null
gender => null
race => null
]
Et j'attendre à voir:
array:3 [
"conflicts" => array:2 [
0 => "last_name"
1 => "first_name"
]
"ignore" => array:4 [
0 => "middle_initial"
1 => "email"
2 => "cell_phone"
3 => "education_level"
]
"merged" => array:2 [
"gender" => "Male"
"race" => "White"
]
]
Veuillez fournir quelques tableaux d'entrée pertinents, puis afficher la sortie souhaitée pour chaque tableau d'entrée. Cela nous aidera à vous assurer que vous utilisez les fonctions "correctes" pour comparer les données (* hint - empty() est une petite âme gourmande: http://php.net/manual/fr/function.empty.php) – mickmackusa
Merci @mickmackusa J'ai mis à jour ma question. – EspressoD