Bug #76589 [Com]: array_column should error when value is not castable to array key
| From: | a at b dot c dot de | Date: | Tue, 10 Jul 2018 22:48:45 +0000 |
| Subject: | Bug #76589 [Com]: array_column should error when value is not castable to array key | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-216267@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76589&edit=1
ID: 76589
Comment by: a at b dot c dot de
Reported by: nobots dot nospam at example dot org
Summary: array_column should error when value is not castable
to array key
Status: Open
Type: Bug
Package: Arrays related
PHP Version: 7.3.0alpha3
Block user comment: N
Private report: N
New Comment:
I wouldn't say that the second behaviour (values are discarded if keys are repeated) is a bug.
The same behaviour is seen in every other situation where array keys can (try to) be repeated (e.g.
array_merge, array_flip, array_combine, array_change_key_case, even "$a['foo'] = 1;
$a['foo'] = 2;".
Previous Comments:
------------------------------------------------------------------------
[2018-07-07 04:49:55] example at example dot org
sorry for that, someone mentioned it and i thought nobody had reported it already
------------------------------------------------------------------------
[2018-07-06 15:40:52] requinix@php.net
Why did you make this second bug report?
------------------------------------------------------------------------
[2018-07-06 14:35:12] cmb@php.net
Related to bug #76587.
------------------------------------------------------------------------
[2018-07-06 14:17:36] nobots dot nospam at example dot org
Description:
------------
array_column should error when value is not castable to array key without loss of data
$a = [
[ 'foo' => 777.5 ],
];
array_column($a, 'foo', 'foo');
is an error because float cannot be used as array key
------------
also it should error if the index already exists and is being overwritten
$a = [
[ 'foo' => 777, "hi" => 1 ],
[ 'foo' => 777, "hi" => 2 ],
];
the index 777 is written twice and the original value is lost
------------
and this is certainly a bug https://3v4l.org/WhUmh
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=76589&edit=1