php访问数组用引号_数组 - 带引号的php implode(101)

数组 - 带引号的php implode(101)

扼杀一个简单的数组

看起来像这样

$array = array('lastname', 'email', 'phone');

$comma_separated = implode(",", $array);

那会回来的

lastname,email,phone

很棒,所以我可能会这样做

$array = array('lastname', 'email', 'phone');

$comma_separated = implode("','", $array);

$comma_separated = "'".$comma_separated."'";

现在我有我想要的漂亮的csv字符串

'lastname','email','phone'

有没有更好的方法来做到这一点,我觉得应该有一个可选参数implode我错过了什么?

11个解决方案

146 votes

$array = array('lastname', 'email', 'phone');

echo "'" . implode("','", $array) . "'";

Umesh Moghariya answered 2019-07-22T02:20:49Z

41 votes

你可以使用fputcsv:

function add_quotes($str) {

return sprintf("'%s'", $str);

}

$csv = implode(',', array_map('add_quotes', $array));

DEMO

另请注意,如果要写入文件,则有fputcsv。

Felix Kling answered 2019-07-22T02:21:21Z

26 votes

不,你这样做的方式很好。 implode()只需要1-2个参数(如果你只提供一个数组,它会用空字符串连接它们)。

Rafe Kettler answered 2019-07-22T02:20:32Z

22 votes

不知道它是否更快,但是,您可以使用您的方法保存一行代码:

$array = array('lastname', 'email', 'phone');

$comma_separated = implode("','", $array);

$comma_separated = "'".$comma_separated."'";

至:

$array = array('lastname', 'email', 'phone');

$comma_separated = "'".implode("','", $array)."'";

Drew Dello Stritto answered 2019-07-22T02:21:48Z

20 votes

$ids = sprintf("'%s'", implode("','", $ids ) );

Robb answered 2019-07-22T02:22:06Z

8 votes

如果你想使用循环,你也可以这样做:

$array = array('lastname', 'email', 'phone');

foreach($array as &$value){

$value = "'$value'";

}

$comma_separated = implode(",", $array);

演示:[http://codepad.org/O2kB4fRo]

Neal answered 2019-07-22T02:22:36Z

2 votes

或者,您可以创建这样的功能:

function implode_with_quotes(array $data)

{

return sprintf("'%s'", implode("', '", $data));

}

Nurlan Alekberov answered 2019-07-22T02:23:01Z

1 votes

另一种可能的选择,取决于您需要的阵列:

$array = array('lastname', 'email', 'phone');

echo json_encode($array);

这将在字符串周围放置'['和']',您可能想要也可能不想要。

Jeremy French answered 2019-07-22T02:23:32Z

0 votes

你也可以这样做

$csv= '\'' . join(array('lastname', 'email', 'phone'),'\',').'\'';

echo $csv;

?>

Senad Meškin answered 2019-07-22T02:23:56Z

0 votes

我想这就是你想要做的

$array = array('lastname', 'email', 'phone');

echo "'" . implode("','", explode(',', $array)) . "'";

rack_nilesh answered 2019-07-22T02:24:20Z

0 votes

如果你想避免fopen / fputcsv子系统这里是一个片段,它从一个关联数组构建一个转义的CSV字符串....

$output = '';

foreach ($list as $row) {

$output .= '"' . implode('", "', array_values($row)) . '"' . "\r\n";

}

或者从对象列表中......

foreach ($list as $obj) {

$output .= '"' . implode('", "', array_values((array) $obj)) . '"' . "\r\n";

}

然后您可以根据需要输出字符串。

doublejosh answered 2019-07-22T02:25:00Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值