【问题标题】:PHP Comma Delimiter or Explode for Foreach LoopForeach 循环的 PHP 逗号分隔符或爆炸
【发布时间】:2016-12-04 09:16:50
【问题描述】:

我有一个拖放 JS 插件,可以将字符串保存如下:

["кровать","бегемот","корм","валик","железосталь"]

我发现我可以在数组中使用 str_replace 来删除括号和 " 字符。我现在遇到的问题是我有一个无效的参数来传递 foreach 循环,因为它无法区分每个单独的单词。

$bar = '["кровать","бегемот","корм","валик","железосталь"]';
$new_str = str_replace(str_split('[]"'), '', $bar);

foreach($new_str as $arr){

    echo $arr;

}

所以现在输出的数据如下(如果我要在 foreach 循环之前回显):

кровать,бегемот,корм,валик,железосталь

无论如何我可以使用逗号作为分隔符然后通过 foreach 传递它,每个单词都是它自己的变量?

有没有更简单的方法来做到这一点?非常感谢任何指导!

【问题讨论】:

  • 是 json 吗?你可能应该只是json_decode()它。
  • foreach(explode(',',$new_str) as $arr) 但是,如上所述,js 使用的是常规 js 数组。如果您展示如何将其传递给 php,将会有更好的解决方案

标签: php arrays foreach delimiter explode


【解决方案1】:

看起来您有一个 JSON 字符串,并希望将其转换为数组。有几种方法可以做到这一点。你可以使用explode 像这样:

$bar = '["кровать","бегемот","корм","валик","железосталь"]';
$new_str = str_replace(str_split('[]"'), '', $bar);
$new_str_array = explode($new_str);

foreach($new_str_array as $arr){

    echo $arr;

}

或者你可以使用json_decode 像这样:

$bar = '["кровать","бегемот","корм","валик","железосталь"]';
$new_str_array = json_decode($bar);

foreach($new_str_array as $arr){

    echo $arr;

}

【讨论】:

    【解决方案2】:
    <?php
        $aa = '["кровать","бегемот","корм","валик","железосталь"]';
        $bb = json_decode($aa);
        foreach($bb as $b)
         echo $b."\n";
    ?>
    

    结果是,

    кровать
    бегемот
    корм
    валик
    железосталь
    

    【讨论】:

      【解决方案3】:

      从技术上讲,您可以使用 explode,但您应该认识到您正在获取 JSON,因此您可以简单地这样做:

      $bar = '["кровать","бегемот","корм","валик","железосталь"]';
      $new_str = json_decode($bar);
      
      foreach($new_str as $arr){
      
          echo $arr;
      
      }
      

      没有对括号、逗号或其他任何奇怪的解析。

      【讨论】:

      • 这是完美的,认为可能有更简单的方法 - 谢谢!
      【解决方案4】:

      你需要的函数是explode()。看看这里: http://www.w3schools.com/php/func_string_explode.asp

      看下面的代码:

      $bar = '["кровать","бегемот","корм","валик","железосталь"]';
      $new_str = str_replace(str_split('[]"'), '', $bar);
      $exploding = explode(",", $new_str);
      
      foreach($exploding as $token){
      
          echo $token;
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 2016-02-11
        • 2011-06-24
        • 1970-01-01
        • 2020-02-21
        • 1970-01-01
        相关资源
        最近更新 更多