ID:               28435
 User updated by:  ofirin at yahoo dot com
 Reported By:      ofirin at yahoo dot com
-Status:           Open
+Status:           Closed
 Bug Type:         Arrays related
 Operating System: Any
 PHP Version:      4CVS-2004-05-18 (stable)
 New Comment:

Ok, I think you're right, we all should be looking forward working with
php5, rather than trying to fix old bugs in php4.


Previous Comments:
------------------------------------------------------------------------

[2004-06-21 11:31:59] vladb at pseudo-infinity dot ro

The php5 result seems more accurate than the php4 one. You got strings
in the $books array, no?

Changing this in php4 may break some code out there so maybe it'd be
best to just mention it as a 4-5 inconsistency.

------------------------------------------------------------------------

[2004-06-18 14:24:41] programmer at bardware dot de

I noticed this problem with PHP5 RC2 on a Win2k box as an
Apache2-module. I have some HMTL-Checkboxes and on the server side want
to check the selected values. My checkboxes are equally named
name="choice2[]" what lets PHP generate an array
$_POST["choice2"][0]
$_POST["choice2"][1]
$_POST["choice2"][2] etc. according to the selected values.
Each checkbox has it's unique value attribute.

To test for a certain value I "reverse" this array with
$arrTmp=array_count_values($_POST["choice2"]);

I now want to access $arrTmp[1] to check if the checkbox with the
attribute value="1" was selected. The respective value was - if
selected - 1, otherwise it's not existent in the
$_POST["choice2"]-Array. This did not work. $arrTmp["1"] didn't work
either. It was no way possible to access a member of the array.

The other poster mentioned the indexes are generated as strings, I want
to point they cannot be accessed at all.

It worked best on PHP 4.3.6

Best,
Bernhard

------------------------------------------------------------------------

[2004-05-18 19:04:43] ofirin at yahoo dot com

Description:
------------
I don't know if this is a php5 or php4 bug, but I'm sure something's
wrong here.
Whenever  in php5 I do an array_count_values() on an array that
contains numeric values as strings the result array uses string keys
instead of the numeric values as indexes. This doesn't happen in php4.
I don't know what behaivor is correct.
I'm using the latest cvs versions of both php4 and php5 btw.

Reproduce code:
---------------
<?php
$books = Array('10', '3', '6', '10');
$quantities = array_count_values($books);
var_dump($books);
var_dump($quantities);
?>

Expected result:
----------------
This is what happens in php4:

array(4) {
  [0]=>
  string(2) "10"
  [1]=>
  string(1) "3"
  [2]=>
  string(1) "6"
  [3]=>
  string(2) "10"
}
array(3) {
  [10]=>
  int(2)
  [3]=>
  int(1)
  [6]=>
  int(1)
}

Actual result:
--------------
This is what happens if php5:

array(4) {
  [0]=>
  string(2) "10"
  [1]=>
  string(1) "3"
  [2]=>
  string(1) "6"
  [3]=>
  string(2) "10"
}
array(3) {
  ["10"]=>
  int(2)
  ["3"]=>
  int(1)
  ["6"]=>
  int(1)
}


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28435&edit=1

Reply via email to