【问题标题】:Laravel array to string conversionLaravel 数组到字符串的转换
【发布时间】:2016-07-08 03:38:44
【问题描述】:

我想将我的数组转换为逗号分隔的字符串。

我的数组

array:2 [
  0 => array:1 [
    "name" => "streaming"
  ]
  1 => array:1 [
    "name" => "ladies bag"
  ]
]

我希望结果为streaming,ladies bag

【问题讨论】:

  • 那你有什么尝试?
  • PHP 101 - $myString = implode(',', array_column($myArray, 'name'));
  • @MarkBaker 你应该把它写成答案

标签: php arrays laravel


【解决方案1】:

由于这些看起来像 Laravel 集合转换为数组,我建议使用内置的 implode() 方法。

根据文档:

$collection = collect([
    ['account_id' => 1, 'product' => 'Desk'],
    ['account_id' => 2, 'product' => 'Chair'],
]);

$collection->implode('product', ', ');

// Desk, Chair

参考:https://laravel.com/docs/master/collections#method-implode

但是,如果它们是普通数组,并且由于它不是单个数组,则在运行 PHP 的普通 implode() 函数之前,您必须编写一个 foreach 或使用 array_column() 将其展平。

【讨论】:

  • 附注:它也可以用于 Fluent/Eloquent 集合。例如:$this->student->find(auth()->user()->id)->get()->studentFavouriteSubjects()->implode('subject_id', ', ');
【解决方案2】:

也许这样简单一点

$string=implode(",",$your_array);

【讨论】:

    【解决方案3】:

    使用foreach 循环两次分离数组并使用substr 删除最后一个字符

    $string = '';
    
    foreach($your_array as $a)
    {    
        foreach($a as $b=>$c)
        {
            $string .= $c.',';
        }
    }
    
    $solution = substr($string,0,-1);
    
    print_r($solution);
    

    【讨论】:

      【解决方案4】:

      你可以尝试一个简单的 foreach 并在每次迭代后添加一个逗号值。

       $string='';
       foreach ($your_array as $value){
          $string .=  $value.',';
       }
      

      【讨论】:

      • 不仅该解决方案将始终有一个尾随逗号,OP 还希望展平多维数组
      • 在我的情况下,我在 laravel 中有护照生成的 jwt 令牌,我无法将它保存在我的数据库中,并且发生了这个错误,但使用这个函数我可以转换它。但为什么最后是 virgool 字符
      【解决方案5】:

      我已经尝试使用以下代码将 laravel 刀片文件中的数组转换为字符串,它工作正常。

      <body>
        <center>
           <h1> LARAVEL ARRAY TO STRING CONVERSION </h1>
        </center>
        <div class="main">
           <?php
              $arr=array("this","is","an","array");
              
              echo "array elements are"."<br>";
              
              foreach($arr as $value)
               echo $value."<br>";
              
              echo "The string is "."<br>";
              ?>
           @foreach($arr as $value)
           {!! $value !!}
           @endforeach
        </div>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-02
        • 1970-01-01
        • 2017-01-14
        • 2020-09-10
        • 2018-05-10
        • 2017-05-10
        相关资源
        最近更新 更多