Создать ассоциативный массив, где ключи соответствуют значениям - PullRequest
0 голосов
/ 14 сентября 2018

Каков наилучший способ создания:

[
    'foo' => 'foo',
    'bar' => 'bar',
]

из этого массива:

[
    1 => 'foo',
    2 => 'bar',
]

Я смотрел на array_map , array_walk и array_column , но я не могу понять, будет ли какая-либо из этих функций делать это?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Вы можете сделать это просто используя foreach:

$array = array(
     'foo',
     'bar'
);
$newArray = array();

foreach($array as $val)
{
    $newArray[$val] = $val;
}
0 голосов
/ 14 сентября 2018

Использовать array_combine .Попробуйте следующее:

$input_array = array( 
                      [1] => 'foo',
                      [2] => 'bar'
                    );

// use array_combine such that keys and values are same source
$expected_output = array_combine($input_array, $input_array);
...