0

I have a 2D array

Array ( 

[0] => Array (

[item_name] => Item name1
[journal_name] => journal name1

 ) 

[1] => Array (

[item_name] => Item name 2
[journal_name] => journal name2 ) 

) 

I want to implode above array like

Item_name1 # journal_name1 , item_name2 # journal_name2

How to join elements like this ?

Nirali Joshi
  • 1,968
  • 6
  • 30
  • 50
  • 1
    This has already been answered here : [http://stackoverflow.com/questions/16710800/implode-data-from-a-multi-dimensional-array][1] [1]: http://stackoverflow.com/questions/16710800/implode-data-from-a-multi-dimensional-array – Tushar Gupta Aug 07 '14 at 09:34

4 Answers4

2

One solution would be like this:

$array = array(
    array('item_name' => 'Item name1', 'journal_name' => 'journal_name1'),
    array('item_name' => 'Item name2', 'journal_name' => 'journal_name2'),
    array('item_name' => 'Item name3', 'journal_name' => 'journal_name3'),
);

$implodedString = implode(', ', array_map(function($array) {
    return implode(' # ', $array);
}, $array));

echo $implodedString;
Leif
  • 1,076
  • 10
  • 16
0
$result_array = array();
foreach($your_2d_array as $val){
    $result_array = $val[item_name].'#'.$val[journal_name]; 
}
$imploded_string = implode(',',$result_array);

There is another second method to do it->

echo implode(',',$result = array_map(function($k, $v){
    return "$v[0]#$v[1]";
}, array_keys($your_2d_array), array_values($your_2d_array)));
Sachin Shukla
  • 1,249
  • 14
  • 17
0

Check this:

<?php
$arr = array ( 
    0 => Array (
        'item_name' => 'Item name1',
        'journal_name' => 'journal name1'
    ) ,
    1 => Array (
        'item_name' => 'Item name 2',
        'journal_name' => 'journal name2'
    ) 
);

foreach($arr as $key=>$val) {
    $implodeArr[$key] = implode('#', $val);
}

$implodeStr = implode(',', $implodeArr);
?>
prava
  • 3,916
  • 2
  • 24
  • 35
0

Check the following, this is without foreach loop

$input = array(
            array(
                'item_name' => 'Item name1', 
                'journal_name' => 'journal name1'
            ), 
            array(
                'item_name' => 'Item name2', 
                'journal_name' => 'journal name2'
            )
         );

echo implode(', ', array_map(function ($entry) {
    return $entry['item_name'] . ' # ' . $entry['journal_name'];
}, $input));
Siva.G ツ
  • 831
  • 1
  • 7
  • 20