Php 改变嵌套数组中的数据
下面是嵌套的数据数组,它来自Wordpress Proplugin表单条目数据库表。我想重新格式化它,这样我就可以在Wordpress WP_list_表中使用它,但我无法确定如何更改最里面的嵌套数组。我需要将每一行的格式设置为Php 改变嵌套数组中的数据,php,wordpress,formidable,Php,Wordpress,Formidable,下面是嵌套的数据数组,它来自Wordpress Proplugin表单条目数据库表。我想重新格式化它,这样我就可以在Wordpress WP_list_表中使用它,但我无法确定如何更改最里面的嵌套数组。我需要将每一行的格式设置为'product\u id'=>'4080', Array ( [30] => Array ( [user_id] => 2
'product\u 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和introde()上乱搞,但我真的不知道自己在做什么。如果有人能帮忙,我将不胜感激
编辑:
所需阵列:
Array (
[30] => Array (
'user_id' => '2',
'product_id' => '4080',
)
[31] => Array (
'user_id' => '5',
'product_id' => '2942',
)...
数组中没有方括号,这就是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
)
)
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"
}
}
这就是var_export($test)使其看起来的样子:
array (
30 =>
array (
'user_id' => '2',
'item_id' => '4080',
),
31 =>
array (
'user_id' => '5',
'item_id' => '2942',
),
)
这就是var_dump($test)让它看起来的样子:
Array
(
[30] => Array
(
[user_id] => 2
[item_id] => 4080
)
[31] => Array
(
[user_id] => 5
[item_id] => 2942
)
)
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"
}
}
数组是一种为键赋值的数据结构;它不是通过显示该结构表示形式的函数运行时所看到的字符串。我不清楚您想要什么,您能用所需的数组编辑您的问题吗?感谢Anke的解释。这意味着我的问题一定是因为别的原因。