Question: Let's say you have a comma-delimited string:

```
$str = 'a,b,c';

```

Calling `explode(',', $str);` will return the following:

```
array('a', 'b', 'c')

```

Is there a way to explode such that the resulting array's keys, and not values, are populated? Something like this:

```
array('a' => null, 'b' => null, 'c' => null)

```

Answer: 
You can use [`array_fill_keys`](https://www.php.net/manual/en/function.array-fill-keys.php) to use the output of `explode` as keys to a new array with a given value:

```
$str = 'a,b,c';
$out = array_fill_keys(explode(',', $str), null);
var_dump($out);

```

Output:

```
array(3) {
  ["a"]=>
  NULL
  ["b"]=>
  NULL
  ["c"]=>
  NULL
}

```

[Demo on 3v4l.org](https://3v4l.org/ll0iP)
something like this:

```php
$str = 'a,b,c';
$arr = [];
foreach ($explode(',', $str) as $key) {
    $arr[$key] = null;
}

```

not that pretty but it works