如何将 WordPress 字符串 meta_key 值转换为更简单的数组?

How can I convert the WordPress string meta_key value into simpler array?

a:1:{s:13:"administrator";b:1;}

我想将其分解并转换成某种数组。

您可以使用 wordpress 的 maybe_unserialize( 'a:1:{s:13:"administrator";b:1;}' ) 功能以获得更好的输出。只需传递序列化字符串,它就会 return 你一个数组。

下面的字符串实际上表示序列化形式的数组。

a:1:{s:13:"administrator";s:1:"1";}

这里: a:1表示只有一个元素的数组 s:13表示字符串和字符串的长度后跟

    Array 
{
     "administrator" => "1"
}

在你的情况下

 $mydata = a:1:{s:13:"administrator";s:1:"1";};
    $mydata = unserialize($mydata);
    echo $mydata['administrator in'][0];

一旦它在 table 中,您就可以使用 unserialize() 函数将其 return 到一个数组中以便在您的代码中使用。

使用内置的 WordPress 函数,您不必在该级别操作数据。摘自 here

/*
 * Get user's role
 *
 * If $user parameter is not provided, returns the current user's role.
 * Only returns the user's first role, even if they have more than one.
 * Returns false on failure.
 *
 * @param  mixed       $user User ID or object.
 * @return string|bool       The User's role, or false on failure.
 */
function km_get_user_role( $user = null ) {
    $user = $user ? new WP_User( $user ) : wp_get_current_user();
    return $user->roles ? $user->roles[0] : false;
}