每当有人点击like按钮时,我都会将用户id保存在post meta中。
$voter = Array(
voter => array(
\'post_id\' => $post_id,
\'user_id\' => $user_id,
\'user_ip\' => $user_ip,
\'author_id\' => $author_id,
\'vote\' => $vote
)
);
add_post_meta($_POST[\'post_id\'], \'voter\', $voter);
echo "success";
我只想在用户不喜欢这篇文章的情况下运行它。所以我用了这个:
function in_array_r($needle, $haystack, $strict = false) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
然后像这样使用if条件可以帮助我发现用户id是否已经在元数据中。
$voter_info = get_post_meta( get_the_ID() , \'voter\', false );
if (in_array_r("1533", $voter_info)){
echo "User is in post meta";
}
但问题是,此条件正在所有数组值中搜索用户id:1533。我想在“user\\u id”字段中搜索它。这让我很困惑。如果您对此有解决方案,或者您知道在多维数组中搜索的更好方法,那么请帮助我。