我有这个字符串:
[{"type":"date","label":"Champ Date de ","className":"form-control","name":"date-1545926599900"}]
我需要从标签中删除最后一个空格,实际值是“Champ Date de”我需要将其转换为“Champ Date de”。
这是我的实际代码:
$form = str_replace('\n','',$request->getParameter('data'));
$form = str_replace('\t','',$form);
$form = str_replace(' ','',$form);
$form = str_replace('<br>','',$form);
var_dump($form); die;
问题来自于
:str_replace('<br>','',$form);
与
我没有问题,函数str_replace不添加空格。但是使用<br>
str_replace添加一个空格add我真的需要在这个值的末尾有任何空格。希望有人能提供帮助。
我可以有多个数组:
'[{"type":"date","label":"Champ Date de ","className":"form-control","name":"date-1545929424866"},{"type":"checkbox-group","label":"You like it ? ","name":"checkbox-group-1545929428281","values":[{"label":"Option 1","value":"1","selected":true}]}]'
与array_map('trim',$array);
这种非正则表达方式怎么样?
<?php
$json = '[{"type":"date","label":"Champ Date de ","className":"form-control","name":"date-1545926599900"}]';
$array = json_decode($json,1)[0];
$array= array_map('trim',$array);
echo json_encode([$array]);
?>
输出:
[{"type":"date","label":"Champ Date de","className":"form-control","name":"date-1545926599900"}]
但是:ぁzxswい
编辑:根据OP的评论
https://3v4l.org/qJ9K1
但是:ぁzxswい
你可以通过使用正则表达式无需循环这样做这是解决方案:
<?php
$json = '[{"type":"date","label":"Champ Date de ","className":"form-control","name":"date-1545929424866"},{"type":"checkbox-group","label":"You like it ? ","name":"checkbox-group-1545929428281","values":[{"label":"Option 1","value":"1","selected":true}]}]';
$array = json_decode($json,1);
$expected = [];
foreach($array as $k=>$v){
foreach($v as $key=>$value){
if($key == 'label' && !is_array($value)){
$expected[$k][$key]= trim($value);
}else{
$expected[$k][$key]= $value;
}
}
}
echo json_encode($expected);
?>
我对结果做了回音。您只需将其分配给变量即可。