【问题标题】:Remove space before and after string in array and keep structure删除数组中字符串前后的空格并保持结构
【发布时间】:2022-08-17 12:44:08
【问题描述】:

我需要删除字符串之前的所有空格并保留字符串中的空格并删除数组中字符串之后的所有空格并保留数组的结构

$data = json_decode($json, true);
foreach($data as $index => $value){
    $tables = json_encode($value[\"tables\"], JSON_UNESCAPED_UNICODE);
    echo $tables;
}

结果来自echo $tables;

[{\"lang\":\"cs\",\"lang_title\":\"Český\",\"menus\":[{\"header\":\"Mechanika\",\"rows\":[{\"parameter\":\"Hmotnost\",\"value\":\"0.65kg\"}]}]},{\"lang\":\"pl\",\"lang_title\":\"Polský\",\"menus\":[{\"header\":\"Mechanika nová\",\"rows\":[{\"parameter\":\"Masa\",\"value\":\"0.65kg\"}]}]},{\"lang\":\"en\",\"lang_title\":\"Anglický\",\"menus\":[{\"header\":\" Me chanics \",\"rows\":[{\"parameter\":\"Weight\",\"value\":\"0.65kg\"}]}]}]

我需要保留$value[\"tables\"] 的结构,只需删除header,parameter,value 中的空格

例如\"header\":\" Me chanics \" -> \"header\":\"Me chanics\"

  • 遍历所有这些并用 \"trim()\" 之后的新值替换这些值。
  • 抱歉,我不确定我是否理解,您能解释一下“遍历所有这些并替换值”吗?我不知道你是什么意思。

标签: php


【解决方案1】:

您可以使用array_walk_recursive 遍历整个数组并使用trim 删除多余的空格

    $json = '[{"lang":"cs","lang_title":"Český ","menus":[{"header":"Mechanika","rows":[{"parameter":"Hmotnost","value":"0.65kg"}]}]},{"lang":"pl","lang_title":"Polský","menus":[{"header":"Mechanika nová","rows":[{"parameter":"Masa","value":"0.65kg"}]}]},{"lang":"en","lang_title":"Anglický","menus":[{"header":" Me chanics ","rows":[{"parameter":"Weight","value":"0.65kg"}]}]}]';
    
    
    $data = json_decode($json, true);
    array_walk_recursive(
            $data, function(&$v, $key) {
        if (in_array($key, ["header", "parameter", "value"]))
            $v = trim($v);
    }
    );
    
    echo json_encode($data, JSON_UNESCAPED_UNICODE);

【讨论】:

  • 看来我的问题已经解决了,非常感谢您的时间和您的意愿。
【解决方案2】:

您可以做的更好的是将数据解码为 $data 使用 array_map 函数

$data = json_decode($json, true);
$data = array_map('trim', $data);

像这样你使用而不是 foreach。

或者使用

trim(); // Function

【讨论】:

  • 好的,谢谢,请问怎么用这个函数array_filter()和trim()?
  • @AmeliaDernigue 我在这里说过要使用 array_filter() 或 trim()。如果您使用array_filter(),我认为不需要修剪。
猜你喜欢
  • 2013-01-23
  • 2019-01-13
  • 2012-09-27
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
相关资源
最近更新 更多