I want to implode values in to a comma-separated string if they are an array:
I have the following array:
$my_array = [ "keywords" => "test", "locationId" => [ 0 => "1", 1 => "2"], "industries" => "1" ];
To achieve this I have the following code:
foreach ($my_array as &$value) is_array($value) ? $value = implode(",", $value) : $value; unset($value);
The above will also change the original array. Is there a more elegant way to create a new array that does the same as the above?
I mean, implode values if they are an array in a single line of code? perhaps array_map()
? …but then I would have to create another function.
Advertisement
Answer
Just create a new array and set the elements (-;
<?php ... $new_array = []; foreach ($my_array as $key => $value) $new_array[$key] = is_array($value) ? implode(",", $value) : $value;