如果值是数组,我想将它们内爆成逗号分隔的字符串:
我有下面的数组:
$my_array = [
"keywords" => "test",
"locationId" => [ 0 => "1", 1 => "2"],
"industries" => "1"
];
下面是一个例子:
foreach ($my_array as &$value)
is_array($value) ? $value = implode(",", $value) : $value;
unset($value);
上面的方法也会改变原来的数组。有没有更优雅的方法来创建一个新的数组,做和上面一样的事情?
我的意思是,如果值是单行代码中的数组,则将其内爆(可能是array_map()
)......但这样我就必须创建另一个函数。
4条答案
按热度按时间pieyvz9o1#
只需创建一个新数组并将元素(-;
hfyxw5xn2#
仅将值追加到新数组:
还有一些可以被称为“一句话”的东西
现在比较两个解决方案,并告诉谁更可读。
qaxu7uf23#
如果在将字符串(非数组)内爆之前将其作为单元素数组进行
type
,则不需要编写/迭代条件语句。对于
array_map()
:(Demo)(英文)或者从PHP7.4中,
array_map()
用箭头函数语法表示:(Demo)或
array_walk()
和修改引用(Demo)或foreach循环:(Demo)
所有代码段将输出:
bogh5gae4#