I’m working on code which needs to str_replace colons with spaces. Since i don’t know how deep my array will go i have to use array_walk_recursive function. The problem is that str_replace is not taken in to the account (read is not working). Please help me out guys.
This is my code
JavaScript
x
public function removeColonsFromStrings(array $inputs) {
d($inputs); // some dump function
array_walk_recursive($inputs, function (&$item, $key) {
$inputs[$key] = str_replace(':',' ', $item);
});
dd($inputs); //dump and die function
return $inputs;
}
and output is following
JavaScript
// first d() output
array(7) {
["GivenName"]=>
string(5) "Me"
["FamilyName"]=>
string(7) "Me"
["DisplayName"]=>
string(19) "[id:: 68]"
["CompanyName"]=>
string(19) "[id:: 68]"
["FullyQualifiedName"]=>
string(0) ""
["PrimaryPhone"]=>
array(1) {
["FreeFormNumber"]=>
string(0) ""
}
["PrimaryEmailAddr"]=>
array(1) {
["Address"]=>
string(24) "my@email.com"
}
}
// Second dd() output
array(7) {
["GivenName"]=>
string(5) "Me"
["FamilyName"]=>
string(7) "Me"
["DisplayName"]=>
string(19) "[id:: 68]"
["CompanyName"]=>
string(19) "[id:: 68]"
["FullyQualifiedName"]=>
string(0) ""
["PrimaryPhone"]=>
array(1) {
["FreeFormNumber"]=>
string(0) ""
}
["PrimaryEmailAddr"]=>
array(1) {
["Address"]=>
string(24) "my@email.com"
}
}
So how to properly update values in my array? If you need any additional informations, please let me know and i will provide. Thank you!
Advertisement
Answer
While sending reference, you need to overwrite the old value.
JavaScript
array_walk_recursive($inputs, function (&$item, $key) {
$item = str_replace(':',' ', $item);
});