Hello there !
I am trying to fill and then compare two arrays: one filled by a foreach construct, and the second by a while construct.
I check both with a print_r to be sure that both are correctly filled (which seems to be the case). But then, when I try to compare them with a array_diff , the result is incoherent (at least to me...). I have tried several variant, but I don't understand what's wrong. Sure you guys can tell me where is my mistake.


Here is the code:

<?

// creates first array (from a _POST[''] )
foreach ($_POST['input_auteur'] AS $aut_ligne) {
$part_ligne = explode(",",$aut_ligne);
$arr1[] = (string) $part_ligne['2'];
}
echo "Array from POST :";
print_r ($arr1);

// creates second array (from SQL query)
$sqlListAut = 'SELECT aut_id FROM mr_ecrit WHERE doc_id = ' . $_GET['docu'];
$resultListAut = mysql_query($sqlListAut);
while ($recListAut = mysql_fetch_array($resultListAut)) {
$arr2[] = (string) $recListAut['aut_id'];
}
echo "Array from SQL:<BR>";
print_r ($arr2);


// comparing both arrays to detect if there is elements in the first array which are not present in the second array $result = array_diff($arr1, $arr2);
echo "array_diff results :";
print_r($result);
?>


Here is a typical output:
__________________________________________
Array from POST: Array (  [0] => 2  [1] => 3  [2] => 4 )

Array from SQL : Array (  [0] => 3  [1] => 4 )
******
array_diff results : Array (  [0] => 2  [1] => 3  [2] => 4 )
__________________________________________

As you can see, the array_diff seems to always return all elements of the first array.

Thanks for your help.
Best regards,

Fred Noyer

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to