Я не wp-кодер, и я годами использовал его для демонстрации! Вы можете использовать ключ, как это, по крайней мере, как я бы сделал в php.
$a = array(
array(
'id' => 5698,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 4767,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3809,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
//Collect array values excrated from foreach
$Collected_array_result = array();
foreach($a as $key => $value ) {
$Collected_array_result[':'.$key] = $value;
}
//Create another array from that values
print_r($Collected_array_result);
Вывод
Array ( [:0] => Array ( [id] => 5698 [first_name] => Peter [last_name] => Griffin ) [:1] => Array ( [id] => 4767 [first_name] => Ben [last_name] => Smith ) [:2] => Array ( [id] => 3809 [first_name] => Joe [last_name] => Doe ) );
И как положить в БД
$stmt = $pdo->prepare("INSERT INTO comments ( " . implode(', ',array_keys($a)) . ") VALUES (" . implode(', ',array_keys($Collected_array_result)) . ")");
$result = $stmt->execute($Collected_array_result);
Получить имена из массива и создать новый массив с именами:
$first_name = array_column($a, 'first_name', 'id');
print_r($first_name);
output
Array ( [5698] => Peter [4767] => Ben [3809] => Joe );
UPDATE : В комментарии @Dharman для sql инъекции и вставки данных в БД с использованием подготовленного оператора, не запрашивался запрос на вставку в вопросе, но в если вы используете этот запрос, пожалуйста, отфильтруйте значения из массива или используйте, как показано ниже.
$first_name = array_column($a, 'first_name');
$first = implode(', ', $first_name);
echo $first;
$last_names = array_column($a, 'last_name');
$last = implode(', ', $last_names);
echo $last;
$id = array_column($a, 'id');
$iddd = implode(', ', $id);
echo $iddd;
$sql = "INSERT INTO comments (first_name, last_names) VALUES (?,?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$first, $last]);
взорвал все значения в массиве и добавил к запросу 1 на 1.