【问题标题】:String replace in Array数组中的字符串替换
【发布时间】:2015-01-23 04:58:04
【问题描述】:

这是我对验证消息的回复

{"success":"0","message":{"Mobile":["The mobile field is required."],"DeviceId":["The device id field is required."]}}

我的代码在哪里

$Response = array('success' => '0', 'message' => $validation->messages());
return json_encode($Response);

我想删除所有[] 所以我的回复应该是

{"success":"0","message":{"Mobile":"The mobile field is required.","DeviceId":"The device id field is required."}}

我试过了

$err = str_replace("[", "", $validation->messages());
$error = str_replace("]", "", $err);
$Response = array('success' => '0', 'message' => $error);
return json_encode($Response);

我来了

{"success":"0","message":"{\"Mobile\":\"The mobile field is required.\",\"DeviceId\":\"The device id field is required.\"}"}

我什至尝试过

$err = str_replace("[", " ", $validation->messages());

我怎样才能这样做以仅删除 [][ 以便我的输出应该是

{"success":"0","message":{"Mobile":"The mobile field is required.","DeviceId":"The device id field is required."}}

【问题讨论】:

  • 似乎是$validation->messages() 内部的另一个维度。只需重新分配它们然后编码。

标签: php arrays laravel replace preg-replace


【解决方案1】:

你所说的你得到的匹配你所说的你想要得到的。除了 \" 这实际上只是 PHP 将 " 作为字符串的一部分的方式。如果你回应你得到的东西,它应该是你正在寻找的东西。

【讨论】:

    【解决方案2】:

    试试这个:

    $obj = json_decode($validation->messages(), true);
    foreach($obj as $k=>$v) $obj[$k] = $v[0];
    $validation_messages = json_encode($obj);
    

    【讨论】:

      【解决方案3】:
      $b = preg_replace('/\[|\]/', "", $validation->messages());
      echo $b;
      

      【讨论】:

        猜你喜欢
        • 2012-04-26
        • 2010-09-28
        • 1970-01-01
        • 2014-12-31
        • 2014-03-21
        • 1970-01-01
        • 2012-02-18
        • 2013-11-08
        • 2010-10-31
        相关资源
        最近更新 更多