Как объединить один ключ с массивом в качестве значения? - PullRequest
0 голосов
/ 17 июня 2019

У меня есть массив, и я хочу создать таблицу с этим массивом в качестве столбца в codeigniter.

Как объединить данные в другой массив?

Вот имена моих столбцов

Array
(
    [0] => System_ID
    [1] => Last Name
    [2] => First Name
    [3] => Full Name
    [4] => Phone
    [5] => Ext
    [6] => Email
    [7] => Dept
    [8] => Site
    [9] => Room
    [10] => Job Title
    [11] => Image
    [12] => URL
    [13] => Active
)

А вот массив, который я хочу объединить как значение

Array
(
    [type] => VARCHAR
    [constraint] => 200
)

Это конечный результат, который я хочу:

$fields = array(
    'System_ID' => array(
            'type' => 'VARCHAR',
            'constraint' => '100',
    ),
);

Ответы [ 3 ]

2 голосов
/ 17 июня 2019

Если вы хотите одно и то же значение для всех значений из первого массива, тогда будет работать простой array_fill_keys:

$array1 = ['System ID', 'Last Name'];
$array2 = [
    'type' => 'VARCHAR',
    'constraint' => '200',
];
print_r(array_fill_keys($array1, $array2));

Демо .

0 голосов
/ 17 июня 2019

Попробуйте это:

$result = array_flip($array_with_column_names);

array_walk($result, function(&$value) {
    $value = $array_with_needed_values;
});

var_dump($result);
0 голосов
/ 17 июня 2019

Если я правильно понимаю ваш вопрос, то это должно сработать. Выполните итерацию по первому массиву и используйте его значение в качестве индекса для нового массива (теперь имена должны быть уникальными), а затем добавьте массив to_add в качестве значения.

$to_add = ['type' => 'VARCHAR', 'constraint' => 100];

$data = [];

foreach ($first_array as $index => $value) {

    $data[$value] = $to_add;

}

print_r($data);

Я добавлю, я думаю, странно иметь все столбцы с одинаковыми характеристиками. Например, идентификатором обычно является unsigned int 11.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...