Problème de doublon de valeur dans une clé d'un tableau

Petit nouveau ! | 1 Messages

07 nov. 2014, 19:36

Bonjour à tous,

et merci de votre aide.

J'ai un problème de doublon dans un tableau PHP

array[

[0] array =>

[id] => X-id

[nom] => X-nom

[date] => X-date

[ligne] => X-ligne

[1] array =>

[id] => X-id

[nom] => X-nom

[date] => X-date

[ligne] => X-ligne


[2] array =>

[id] => X-id

[nom] => X-nom

[date] => X-date

[ligne] => X-ligne

]



Le but :

Trouver les doublons de valeur de [ligne] et ne garder que la dernière en [date]


Explication :

la valeur [ligne] correspond à une ligne de comptabilité.
Sa valeur change au cours de l'année.
Il me faut cependant conserver les ancienne dans la base de donnée.
Donc je voudrais retrouver celle en cours grâce à [date]

Le code :

Je suis passé par des For, foreach, in_aarray(), unset(), etc... rien n'y fait


<?php
//-------------- Trouve les charges
	$table = 'charges';	
	$variables = 'pere = '.$id_organisme;
  $selection = 'SELECT * FROM '.$table.' WHERE '.$variables.' ORDER BY date_application';
	$requete = mysql_query($selection) or die($requete_echouee);
	$nombre_charges = mysql_num_rows($requete);
  
  
//------------ Mon dernier essaie
for($i=0 ; $i<$nombre_charges ; $i++){
		$charges[$i] = mysql_fetch_assoc($requete);
		foreach($charges as $key => $val){
			if($key!=0){
				 echo $key2 = array_search($val['ligne'], $charges[$key]);
				 unset($charges[$key]);
			}
		}
	}

?>




Un peu d'aide sur ce sujet m'aiderai grandement !

Merci à tous

Nestecha
Invité n'ayant pas de compte PHPfrance

08 nov. 2014, 03:55

Un truc dans ce genre ?
<?php

$aDatas = array();

$aDatas[0]['date'] = '18/08/2014';
$aDatas[1]['date'] = '19/08/2014';
$aDatas[2]['date'] = '20/08/2014';
$aDatas[3]['date'] = '18/08/2014';
$aDatas[4]['date'] = '21/08/2014';
$aDatas[5]['date'] = '19/08/2014';

$aDatas[0]['ligne'] = 'Ancien';
$aDatas[1]['ligne'] = 'Ancien';
$aDatas[2]['ligne'] = 'Ancien';
$aDatas[3]['ligne'] = 'Recent';
$aDatas[4]['ligne'] = 'Ancien';
$aDatas[5]['ligne'] = 'Recent';

var_dump($aDatas);

$iLastDate = '';

foreach($aDatas as $aData) {
    if ($aData['ligne'] == 'Ancien') {
        $iLastDate = $aData['date'];
    }
}

echo $iLastDate;
En fait, si tu connais la valeur de [ligne] dont tu recherches les doublons, c'est tout bête (c'est le code inscrit au dessus). Par contre si tu cherches les doublons de façon "automatique", sans avoir à les connaître auparavant, c'est une autre histoire.

Mammouth du PHP | 2278 Messages

08 nov. 2014, 13:02

Quelle colonne de la table ce qui fait doublon de clef?
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD