Nirali Joshi
Nirali Joshi

Reputation: 2008

Implode two dimentional array

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 ?

Upvotes: 0

Views: 95

Answers (4)

Siva.G ツ
Siva.G ツ

Reputation: 839

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

Upvotes: 0

Sachin Shukla
Sachin Shukla

Reputation: 1279

$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)));

Upvotes: 0

prava
prava

Reputation: 3986

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);
?>

Upvotes: 0

Leif
Leif

Reputation: 1126

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;

Upvotes: 2

Related Questions