Каков наилучший способ создания:
[ 'foo' => 'foo', 'bar' => 'bar', ]
из этого массива:
[ 1 => 'foo', 2 => 'bar', ]
Я смотрел на array_map , array_walk и array_column , но я не могу понять, будет ли какая-либо из этих функций делать это?
Вы можете сделать это просто используя foreach:
$array = array( 'foo', 'bar' ); $newArray = array(); foreach($array as $val) { $newArray[$val] = $val; }
Использовать 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);