URL: https://linuxfr.org/forums/programmation-php/posts/bug-php5-ou-bug-entre-le-clavier-et-la-chaise Title: bug PHP5 ou bug entre le clavier et la chaise ? Authors: Mouns Date: 2006年04月07日T13:21:01+02:00 Tags: Score: 0 Bonjour, je code en ce moment en PHP , et pour une fonction très particulière, je suis passé à PHP5 ( j'ai aussi d'autres raisons pour cette migration mais c'est une autre histoire ). cette fonction est _array_udiff()_ qui permet de calculer selon une contrainte utilisateur la difference entre N array . Apres moults RTFM & STFW je conclus que GNEPMA ( Google N'Est Pas Mon Ami ), et je me tourne vers vous avant d'aller pleurer famine avec un bug report. le probleme est simple, _array_udiff_ ne me retourne pas ce que j'attends et les docs en ligne de php.net ( [http://fr.php.net/manual/fr/function.array-udiff.php](http://fr.php.net/manual/fr/function.array-udiff.php) ) sont assez sybiline sur son fonctionnement. soit le source suivant :
header( "Content-type: text/plain" ); $a1 = array( array( "K1" => "v11", "K2" => "v21" ), array( "K1" => "v12", "K2" => "v22" ), array( "K1" => "v13", "K2" => "v23" ), array( "K1" => "v14", "K2" => "v24" ), array( "K1" => "v15", "K2" => "v25" ) ); $a2 = $a1; $a2[1]["K1"] = "ick"; function mns_diffu_1( $a, $b ) { return array_diff( $a, $b ); } function mns_diffu_2( $a, $b ) { return array_diff_assoc( $a, $b ); } function mns_diffu_3( $a, $b ) { return (count(array_diff( $a, $b )))?(1):(0); } function mns_diffu_algo( $a, $b ) { print( $a["K1"] . " ? " . $b["K1"] . "\n" ); return array_diff( $a, $b ); } print "affichage des differences\n"; print_r( $a1 ); print_r( $a2 ); print "affichage des differences\n"; print_r( array_udiff( $a2, $a1, "mns_diffu_1" ) ); print_r( array_udiff( $a2, $a1, "mns_diffu_2" ) ); print_r( array_udiff( $a2, $a1, "mns_diffu_3" ) ); print "affichage de l'algo\n"; print_r( array_udiff( $a2, $a1, "mns_diffu_algo" ) );

AltStyle によって変換されたページ (->オリジナル) /