首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除PHP数组中的逗号以进行JSON格式化

删除PHP数组中的逗号以进行JSON格式化
EN

Stack Overflow用户
提问于 2018-06-26 00:52:56
回答 2查看 278关注 0票数 1

我正在输出一个json格式的数组。我用逗号分隔了address字段和Market字段,如果字段不存在,我想删除逗号,这样我就不会以逗号空格结束。我在下面试过了内爆,但似乎不起作用...这样做的正确方法是什么?

代码语言:javascript
复制
  $data = array(
    'ID' => $Member->memberID(),
    'Name' => $Member->first_name() . ' ' . $Member->last_name(),
    'Job Title' => $Member->expert_job_title(),
    'Organisation' => $Member->expert_org_name(),
    'Organisation Type' => $Member->expert_org_type(),
    'Website' => 'http://' . $Member->expert_org_website(),
    'Phone' => $Member->expert_org_phone(),
    'Expertise' => $Member->expert_org_desc(),
    'Markets' => implode(', ', array($Member->expert_org_market_medical(), $Member->expert_org_market_pharmaceuticals(), $Member->expert_org_market_agriculture(), $Member->expert_org_market_food(), )),
    'Address' => $Member->expert_address_one() . ', ' . $Member->expert_address_two() . ', ' . $Member->expert_address_town_city() . ', ' . $Member->expert_address_county_state() . ', ' . $Member->expert_org_country() . ', ' . $Member->expert_address_code(),
    'Latitude' => $Member->expert_org_latitude(),
    'Longitude' => $Member->expert_org_longitude()
  );



header('Content-Type: application/json');

echo json_encode($data, JSON_PRETTY_PRINT);

使用答案更新

代码语言:javascript
复制
'Markets' => implode(', ', array_filter(array($Member->expert_org_market_medical(), $Member->expert_org_market_pharmaceuticals(), $Member->expert_org_market_agriculture(), $Member->expert_org_market_food(), ))),
'Address' => implode(', ', array_filter(array($Member->expert_address_one(), $Member->expert_address_two(), $Member->expert_address_town_city(), $Member->expert_address_county_state(), $Member->expert_org_country(), $Member->expert_address_code(), ))),
EN

回答 2

Stack Overflow用户

发布于 2018-06-26 01:06:20

做一些你要做的事情。但是,您可以尝试使用array_filterin documentation

代码语言:javascript
复制
$Markets = array($Member->expert_org_market_medical(), $Member->expert_org_market_pharmaceuticals(), $Member->expert_org_market_agriculture(),  $Member->expert_org_market_food());
$Markets = array_filter($Markets, function($item) {
    // return if that strings isn't null
    // maybe you want to add another restrictions here
    return strlen($item);
}, $Markets);
// all empty items was removed.|
$Markets = implode(',', $Markets);
票数 0
EN

Stack Overflow用户

发布于 2018-06-26 01:22:20

也许可以使用preg_replace

代码语言:javascript
复制
 $json = json_encode($data);
 $json = preg_replace('/(^, )|( ,)/mi', '', $json);
 $data = json_decode($json);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51028373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档