Bug #76114 [Com]: unset deletes too much

From: Date: Mon, 19 Mar 2018 10:47:01 +0000
Subject: Bug #76114 [Com]: unset deletes too much
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-214402@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76114&edit=1 ID: 76114 Comment by: spam2 at rhsoft dot net Reported by: hgalt at gmx dot net Summary: unset deletes too much Status: Open Type: Bug Package: opcache Operating System: server 2012 R2 PHP Version: 7.2.3 Block user comment: N Private report: N New Comment: these "structures" are a total mess why don't you just use print_r() so that it becomes readable? php > print_r($x); Array ( [1] => Array ( [1] => x [2] => y [3] => Array ( [0] => a [1] => b ) ) [2] => Array ( [0] => x ) ) Previous Comments: ------------------------------------------------------------------------ [2018-03-19 10:41:28] hgalt at gmx dot net Description: ------------ When I use unset to dele a specific array inside an array, it deletes the specific array and all array on the same level behind this specific array. My structure: *0: 0: id -> 0 1: name -> Teig 2: doing -> *3: 0: q -> 100 1: u -> g 2: p -> wheat_flour *4: 1: q -> 100 1: u -> g 2: p -> sugar *5: 2: q -> 100 1: u -> g 2: p -> milk 1: count -> 1 2: uidR -> 2 The star infront of the key says that it is an array. If I execute unset($array[0][1]); the array *4 will be deleted but also the next one (*5). If after *5 additional arrays would be follow, these would be also deleted. I know, that in the past this was working, but I am sorry, I don't know when. Test script: --------------- <?php $array [0]= ['id' => 0, 'name' => 'Teig', 'doing' => 'Test']; $array[0][0] = ['q' => '100', 'u' => 'g', 'p' => 'wheat_flour']; $array[0][1] = ['q' => '100', 'u' => 'g', 'p' => 'sugar']; $array[0][2] = ['q' => '100', 'u' => 'g', 'p' => 'milk']; $array[] = ['count' => '1', 'uidR' => '2']; unset($array[0][1]); Expected result: ---------------- *0: 0: id -> 0 1: name -> Teig 2: doing -> *3: 0: q -> 100 1: u -> g 2: p -> wheat_flour *5: 2: q -> 100 1: u -> g 2: p -> milk 1: count -> 1 2: uidR -> 2 Actual result: -------------- *0: 0: id -> 0 1: name -> Teig 2: doing -> *3: 0: q -> 100 1: u -> g 2: p -> wheat_flour 1: count -> 1 2: uidR -> 2 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=76114&edit=1

« previous php.bugs (#214402) next »