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 数组到字符串的转换的主要内容,如果未能解决你的问题,请参考以下文章