gpt4 book ai didi

php - 在WordPress的用户元数组中按键删除值

转载 作者:行者123 更新时间:2023-12-03 20:47:28 24 4
gpt4 key购买 nike

我在我的 WordPress 页面上将此数组设置为 WordPress 用户:

Array
(
[0] => Array
(
[0] => 1509
[1] => 1597
)

)

要接收这个数组,我正在这样做:
$get_ids = get_user_meta( 3, 'additional_ids', false );

太好了,到目前为止!现在我有一个小问题,因为例如我需要删除值 1509 来自 user_meta .所以我渴望通过目前有效的值来找出关键:
$key = array_search( (int) $value, $get_ids[0], true );

所以我现在发现 key 是 [0] .但是我现在如何从用户元数据中以一种聪明的方式删除它并保存它,我的元数据数组在保存后看起来像这样:
Array
(
[0] => Array
(
[0] => 1597
)

)

这是我尝试过的:
//Unset element to delete from the array
unset( $get_ids[0][ $key ] );


//Save it again in the database
update_user_meta( 3, 'additional_ids', $get_ids, false );

但是当我这样做时,数组完全搞砸了,不再可读。

最佳答案

我们需要解决的第一件事是如何您将元数据添加到您的用户。如果您使用 add_user_meta ,您可以在同一个元键下添加多个元值。像这样:

//add_user_meta( $user_id, $meta_key, $meta_value, $unique );
add_user_meta(3, 'additional_ids', 1597, false);
add_user_meta(3, 'additional_ids', 1509, false);

这样做会添加 两个 1509 和 1597 到用户元 additional_ids .

如果您以这种方式添加元字段,它将允许您使用 get_user_meta 获取所有值像这样:
$additional_ids = get_user_meta(3, 'additional_ids', false);

这将返回一个这样的数组:
Array (
[0] => 1597
[1] => 1509
)

但是,您可以使用 delete_user_meta(); 从数组中删除任何值,而无需先获取数组。删除该特定值。

像这样:
delete_user_meta( 3, 'additional_ids', 1509 );

这意味着如果您再次获得额外的 id,它将如下所示:
$additional_ids = get_user_meta(3, 'additional_ids', false);
print_r($additional_ids);
//prints out:
Array (
[0] => 1597
)

该函数中的第三个参数将确保仅删除具有该特定值的元数据。

这样做就无需尝试查找与要删除的值关联的键,并且还可以确保您不会意外地弄乱该数组中可能存在或不存在的任何其他值。

关于php - 在WordPress的用户元数组中按键删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com