Search code examples
phparraysmultidimensional-arraygroupingarray-column

How to combine each subarray of subarrays and store them as comma separated strings?


I need to join all subarray Name values in single subarray.

Given input format:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [Name] => kumar
                )
            [1] => Array
                (
                    [Name] => siva
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [Name] => Arun
                )
            [1] => Array
                (
                    [Name] => Prem   
                )
        )
)

required output format

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [Name] => kumar, siva
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [Name] => Arun, Prem 
                )
        )
)

My coding attempt:

$final = array();
foreach ($NameArray as $row) {
    foreach ($row as $rows) {
        $final[] = $rows['Name'];
    }
}
print_r($final);

It shows each separate. I need each subarray to be a single array name with comma format.


Solution

  • You can do something like this:

    foreach($a as $k1=>$ar1){
        $text = '';
        foreach($ar1 as $t){
            $text .= "{$t['Name']}, ";
        }
        unset($a[$k1]);
        $a[$k1][0]['Name'] = substr($text,0,-2);
    }
    
    var_dump($a);
    

    Output:

    array (size=2)
    
          0 => 
            array (size=1)
              0 => 
                array (size=1)
                  'Name' => string 'kumar, siva' (length=10)
          1 => 
            array (size=1)
              0 => 
                array (size=1)
                  'Name' => string 'Arun, Prem' (length=9)