下面我有一个数组,用于设置自定义用户元(lh_userbadges
) 在里面user_meta
但我不确定以后如何只更新阵列的一部分。。。
$lh_user_badges = array(
\'lh_userbadge_comments25\' => \'0\',
\'lh_userbadge_comments50\' => \'0\',
\'lh_userbadge_comments75\' => \'0\',
\'lh_userbadge_comments100\' => \'0\',
\'lh_userbadge_comments150\' => \'0\',
\'lh_userbadge_submited\' => \'0\',
//etc.
);
update_user_meta($user_id, \'lh_userbadges\', $lh_user_badges);
根据我在其他堆栈溢出问题中收集的信息(
How to update serialized data in the user meta data 这是一个很好的例子,但它只是在增加,我不想这样。我只想设置一次特定的数字。),我想大致是这样的,但我不确定。。。。
$meta_value = get_user_meta($user_id, \'lh_userbadges\', false);
$meta_value[\'lh_userbadge_comments25\'] //....?
例如,我只想更新对象
lh_userbadge_comments25
从…起
lh_userbadges
从0到(假设)25,我将如何做到这一点?我想我的第二部分代码是正确的,但我不知道。。。
有什么想法吗?Also, I\'m not sure if this is the best way to do it but I figured this would save database clutter if I did it in this format rather than each type being it\'s own meta item.
最合适的回答,由SO网友:chrisguitarguy 整理而成
只需为1h_userbadge_comments25
钥匙
就像这样。。。
<?php
$meta_value = get_user_meta($user_id, \'lh_userbadges\', false);
// just assign this key a new value
$meta_value[\'lh_userbadge_comments25\'] = 25;
然后再保存一次。
<?php
update_user_meta( $user_id, \'lh_userbadges\', $meta_value );
是否将所有这些值存储为数组是正确的方法,这实际上取决于您。你需要像这样做很多改变吗?所有这些价值观一起有意义吗?如果不知道你在做什么,这是一个很难回答的问题。