PHP Разбить заполненные ключи, а не значения - PullRequest
1 голос
/ 09 апреля 2020

Допустим, у вас есть строка, разделенная запятыми:

$str = 'a,b,c';

Вызов explode(',', $str); вернет следующее:

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

Есть ли способ взорваться так, чтобы полученное в результате ключи массива, а не значения, заполняются? Как то так:

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

Ответы [ 3 ]

2 голосов
/ 09 апреля 2020

Вы можете использовать array_fill_keys, чтобы использовать вывод explode в качестве ключей для нового массива с заданным значением:

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

Вывод:

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

Демонстрация на 3v4l.org

0 голосов
/ 09 апреля 2020

Вы можете просто использовать разнесение с foreach

$res = [];
foreach(explode(",", $str) as $key){
  $res[$key] = null;
}
print_r($res);

https://3v4l.org/KGlfA

0 голосов
/ 09 апреля 2020

примерно так:

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

не так красиво, но работает

...