16

I want to convert my array to comma separated string.

my array

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

I want result as streaming,ladies bag

4
  • 1
    So what have you tried? Commented Mar 21, 2016 at 14:52
  • 6
    PHP 101 - $myString = implode(',', array_column($myArray, 'name')); Commented Mar 21, 2016 at 14:52
  • @MarkBaker you should write that as an answer Commented Mar 21, 2016 at 14:55
  • MarkBaker was good to not post redundant content as an answer to a mega-duplicate question. Ideally, this page would have been closed half of a decade ago. Commented Jul 26, 2022 at 2:57

5 Answers 5

14

Since these look like Laravel collections converted to arrays, I would suggest using the inbuilt implode() method.

As per the docs:

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

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

// Desk, Chair

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

However, if they're ordinary arrays, and since it's not a single array, you'd have to write a foreach or flatten it with array_column() before running PHP's ordinary implode() function.

Sign up to request clarification or add additional context in comments.

1 Comment

A side note: it can be also used on Fluent/Eloquent collections. e.g.: $this->student->find(auth()->user()->id)->get()->studentFavouriteSubjects()->implode('subject_id', ', ');
8

maybe a little simpler like that

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

Comments

2

U could try a simple foreach and add a comma value after every iteration.

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

2 Comments

Not only that solution will always have a trailing comma, the OP wants to flatten a multidimensional array
in my case i have jwt token in laravel generated by passport and i cant save it in my db and this error happened but with this function i can convert it. but why virgool character at the end
2

Use a foreach loop twice to segregate the array and use substr to remove the last character

$string = '';

foreach($your_array as $a)
{    
    foreach($a as $b=>$c)
    {
        $string .= $c.',';
    }
}

$solution = substr($string,0,-1);

print_r($solution);

Comments

0

I have tried the following code to convert array to string in laravel blade file and it works fine .

<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>

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.