简体   繁体   中英

convert array of arrays into comma separated list with unique values - PHP

I have an array that looks like below:

$var[] =   ^ array:4 [▼
      0 => array:1 [▼
        0 => "apple"
      ]
      1 => array:1 [▼
        0 => "apple"
        1 => "grape"
      ]
      2 => array:1 [▼
        0 => "orange"
      ]
      3 => array:1 [▼
        0 => "banana"
      ]
    ]

Is there a way to convert this array into comma separated list with unique values as below?

$var = "apple,grape,orange,banana"

I tried implode(', ',$var) but it's not working as expected. Any help pls?

Update: My sub-array may have more than 1 element. It's dynamic.

This produces the results given the expected input. Basically array_column get's the first item from each item of the array (0 based). Then array_unique on that will simply get the values without duplicates.

$arr = [
    ['apple'],
    ['apple'],
    ['banana'],
    ['pie'],
];

print_r(array_unique(array_column($arr, 0)));

There's also a one-liner solution:

$result= array_unique(call_user_func_array('array_merge', $arr));

cf. https://stackoverflow.com/a/14972714/13720553

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM