我正在输出一个json格式的数组。我用逗号分隔了address字段和Market字段,如果字段不存在,我想删除逗号,这样我就不会以逗号空格结束。我在下面试过了内爆,但似乎不起作用...这样做的正确方法是什么?
$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);
使用答案更新
'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(), ))),
发布于 2018-06-26 01:06:20
做一些你要做的事情。但是,您可以尝试使用array_filter
、in documentation。
$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);
发布于 2018-06-26 01:22:20
也许可以使用preg_replace
$json = json_encode($data);
$json = preg_replace('/(^, )|( ,)/mi', '', $json);
$data = json_decode($json);
https://stackoverflow.com/questions/51028373
复制相似问题