Greetings, Romain Moyne. In reply to Your message dated Saturday, March 5, 2022, 16:20:24, > I did some more tests this night. > here is my code > var_dump($property['id_hash']); > reset($property['id_hash']); > $k1 = key($property['id_hash']); > end($property['id_hash']); > $k2 = key($property['id_hash']); > echo PHP_EOL; > var_dump($k1 === $k2); > echo "hex k1=".bin2hex($k1).PHP_EOL; > echo "hex k2=".bin2hex($k2).PHP_EOL; > echo PHP_EOL."---".PHP_EOL; > here is the result : > array(3) { > [-1]=> > array(0) { > } > [26]=> > array(1) { > [0]=> > int(10588090) > } > [-1]=> > array(1) { > [0]=> > int(10588090) > } > } But where is the code that building the array?… > bool(true) > hex k1=2d31 > hex k2=2d31 > it's nuts. I don't understand. It started to happen when I upgrade from php > 7.2 to php 8.0 > I am running the latest 8.0.16 php version. > the fact is I can't reproduce it, it happens after a few iteration around > items. Sometimes it happens, sometimes not. Do you get this array from a call to some extension function perhaps? > On Fri, 4 Mar 2022 at 20:15, AllenJB <php.lists@xxxxxxxxxxxxx> wrote: >> >> On 04/03/2022 15:34, Romain Moyne wrote: >> > Hi, >> > >> > working with php 8.0.16, i am meeting a hard bug I can't really explain. >> > One of my script populates an array and doing a var_dump I have that : >> > >> > Notice the duplicate -1 key. It should not exist as php should erase >> > the previous key. >> > >> > array(3) { >> > [-1]=> >> > array(1) { >> > [0]=> >> > int(10585779) >> > } >> > [18]=> >> > array(2) { >> > [0]=> >> > int(10585779) >> > [1]=> >> > int(10586274) >> > } >> > [-1]=> >> > array(1) { >> > [0]=> >> > int(10586274) >> > } >> > } >> > >> > >> > And when doing a json_encode of that, I get that : >> > "id_hash":{"-1":[10585779],"18":[10585779,10586274],"-1":[10586274]} >> > >> > >> > I suspected a utf8 misencoding, but it seems it's not. >> > >> > Any thoughts? >> >> My best guess would be that one or more of the keys contains a >> non-printable character, such as a null byte. >> >> You could us bin2hex on the keys to find out what's going on >> >> See for example: https://3v4l.org/BMLMI >> >> -- Sincerely Yours, Andrey Repin <anrdaemon@xxxxxxxxx>