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.
You don't need to write/iterate a conditional statement if you
type
the strings (non-arrays) as single-element arrays before imploding them.Code: (Demo)
Output:
Or if you prefer a foreach loop, this will provide the same result:
Just create a new array and set the elements (-;
Just append values to new array:
And something that can be called a "one-liner"
Now compare both solutions and tell which is more readable.