note 8717 deleted from function.array-unique by cmb

From: Date: Mon, 12 Nov 2018 14:39:11 +0000
Subject: note 8717 deleted from function.array-unique by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-209675@lists.php.net to get a copy of this message
Note Submitter: jllamas at bal dot com dot mx ---- It seems that array_unique creates an exact copy of the original array and then elimitates duplicate values. It does NOT change the "internal references" of the array. For example: <?php $test_alfa = array(); $test_alfa[0] = "aa"; $test_alfa[1] = "aa"; $test_alfa[2] = "aa"; $test_alfa[3] = "bb"; $test_alfa[4] = "aa"; $test_alfa[5] = "bb"; $test_alfa[6] = "cc"; $test_alfa[7] = "bb"; $test_beta= array_unique($test_alfa); $numValues = count($test_beta); for ($i = 0 ; $i <= 7 ; $i++) echo("test_beta[$i] = $test_beta[$i] <br>"); echo ("Number of elements in test_beta = $numValues "); ?> will give you the following output: test_beta[0] = test_beta[1] = aa test_beta[2] = test_beta[3] = test_beta[4] = test_beta[5] = bb test_beta[6] = cc test_beta[7] = Number of elements in test_beta = 3 The point is that you won't get the output you'd expect if you think that the values of the non duplicate elements are located in the first three array locations. <?php $numValues = count($test_beta); for ($i=0;$i<=$numValues; $i++) echo("test_beta[$i] = $test_beta[$i] <br>"); echo ("Number of elements in test_beta = $numValues "); ?> will give you: test_beta[0] = test_beta[1] = aa test_beta[2] = Number of elements in test_beta = 3 Hope that saves u some debugging time!

« previous php.notes (#209675) next »