Laravel 数组到字符串的转换

Posted

技术标签:

【中文标题】Laravel 数组到字符串的转换【英文标题】:Laravel array to string conversion 【发布时间】: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 你应该把它写成答案 【参考方案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>

【讨论】:

以上是关于Laravel 数组到字符串的转换的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 数组到字符串的转换

数组到字符串转换 Laravel 5.2

Laravel 8:调用路由时数组到字符串的转换:列表

Laravel 雄辩的 all() 方法给出错误“数组到字符串的转换”[关闭]

laravel 4验证器错误数组到字符串转换

Laravel 雄辩不更新 JSON 列:数组到字符串的转换