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

 ID:                 23239
 Updated by:         j...@php.net
 Reported by:        bibifoc23 at yahoo dot fr
 Summary:            preg_replace don(t work on multi-dimensional arrays
-Status:             Open
+Status:             Wont fix
 Type:               Feature/Change Request
-Package:            Feature/Change Request
+Package:            PCRE related
 Operating System:   windows & linux
-PHP Version:        php-4.3.2-RC2
+PHP Version:        4.3.2-RC2
-Block user comment: N
+Block user comment: Y
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2003-04-30 04:09:54] bibifoc23 at yahoo dot fr

it 's not a feature request.



When i want to change string in a array, i use preg_replace. But this
function destroy my array (like the result of a ldap search). So, if
preg_replace is unable to perform a recursive replacement, the result
should be the initial array. 



Or change the doc.



thanks

------------------------------------------------------------------------
[2003-04-30 03:58:56] der...@php.net

it's still not a bug but a feature request.

------------------------------------------------------------------------
[2003-04-30 03:54:38] bibifoc23 at yahoo dot fr

always the problem with preg_replace with multi-dimensional array with
php-4.3.2

------------------------------------------------------------------------
[2003-04-16 07:58:48] bibifoc23 at yahoo dot fr

when i use p_reg_replace on multi-dimensional arrays, the utput  array
is  one dimensional array and so i lost data.

i get this bug when i want replace patten with a ldap result
(ldap_get_entries);



i use the latest win32 CVS (php4) and i get with php-4.2.3



<?php





# good result

$tableau = array ( "toto", "titi", "tata" );

$tableau2 = preg_replace ( '{t}', '-', $tableau );

var_dump ( $tableau2 );



echo "----------------------------------------------\n";

# wrong result

$tableau = array ( array ("toto"), array ("titi"), array ("tata") );

var_dump ( $tableau );

$tableau2 = preg_replace ( '{t}', '-', $tableau );

var_dump ( $tableau2 );





?>

the output is:



array(3) {

  [0]=>

  string(4) "-o-o"

  [1]=>

  string(4) "-i-i"

  [2]=>

  string(4) "-a-a"

}

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

array(3) {

  [0]=>

  array(1) {

    [0]=>

    string(4) "toto"

  }

  [1]=>

  array(1) {

    [0]=>

    string(4) "titi"

  }

  [2]=>

  array(1) {

    [0]=>

    string(4) "tata"

  }

}

array(3) {

  [0]=>

  string(5) "Array"

  [1]=>

  string(5) "Array"

  [2]=>

  string(5) "Array"

}







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



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

Reply via email to