Изменить данные во вложенном массиве
У меня есть вложенный массив данных ниже, который взят из таблицы базы данных записей формы плагина Wordpress Formidable Pro. Я хотел бы переформатировать его, чтобы я мог использовать его в Wordpress WP_list_table, но я не могу понять, как изменить внутренний вложенный массив. Мне нужно, чтобы каждая строка была отформатирована как 'product_id' => '4080',
Array (
[30] => Array (
[user_id] => 2
[product_id] => 4080
)
[31] => Array (
[user_id] => 5
[product_id] => 2942
)
[32] => Array (
[user_id] => 4
[product_id] => 9630
)
[33] => Array (
[user_id] => 3
[product_id] => 2542
)
[34] => Array (
[user_id] => 7
[product_id] => 1234
)
)
Код, используемый для создания массива:
global $wpdb;
//Retrieve the bids from the database.
$form_entries = $wpdb->get_results('SELECT * FROM '. $wpdb->prefix .'frm_item_metas WHERE field_id in (145,147)');
$data = array();
foreach ( $form_entries as $meta ) {
if ( ! isset($data[$meta->item_id])){
$data[$meta->item_id] = array();
}
$data[$meta->item_id][] = $meta->meta_value;
}
//rename the array keys
foreach( $data as &$new_values ) {
$new_values['user_id'] = $new_values[0]; unset( $new_values[0] );
$new_values['product_id'] = $new_values[1]; unset( $new_values[1] );
}
unset($new_values);
}
Я пытался возиться с strReplace и implode(), но я действительно не знаю, что я делаю. Буду благодарен, если кто-нибудь сможет помочь.
Редактировать: Желаемый массив:
Array (
[30] => Array (
'user_id' => '2',
'product_id' => '4080',
)
[31] => Array (
'user_id' => '5',
'product_id' => '2942',
)...
1 ответ
В массиве нет квадратных скобок, именно так print_r отмечает ключи в массиве. Насколько я могу судить, массив в нужном вам формате.
Вот для лучшего понимания вопроса... Я создаю массив.
$test = array(
30 => array( 'user_id' => '2', 'item_id' => '4080' ),
31 => array( 'user_id' => '5', 'item_id' => '2942' ),
);
Это то, что print_r($test)
выглядит так:
Array
(
[30] => Array
(
[user_id] => 2
[item_id] => 4080
)
[31] => Array
(
[user_id] => 5
[item_id] => 2942
)
)
Вот как выглядит var_export($test):
array (
30 =>
array (
'user_id' => '2',
'item_id' => '4080',
),
31 =>
array (
'user_id' => '5',
'item_id' => '2942',
),
)
Вот как выглядит var_dump($test):
array(2) {
[30]=>
array(2) {
["user_id"]=>
string(1) "2"
["item_id"]=>
string(4) "4080"
}
[31]=>
array(2) {
["user_id"]=>
string(1) "5"
["item_id"]=>
string(4) "2942"
}
}
Массив - это структура данных, которая присваивает значения ключам; это не та строка, которую вы видите при запуске через функцию, которая отображает представление этой структуры.