Orderby meta _value that is saved as an array

I don’t think it will be possible using the User Query Class and probably not through MySQL either, because WordPress saves Arrays as Serialized data, so MySQL can’t interpret it like it could if it was a JSON format.

The only solution I can foresee is ordering it yourself using a loop in PHP – just query all users, then get it’s metadata, and loop through it ordering as you need.

To get best of performance, you can create an array containing the ordered IDs of the users, and save it as an option – or transient – and rebuilding this order index every time the user meta is changed. Something like this:

add_action( "added_user_meta", function($mid, $object_id, $meta_key, $meta_value) {

    if ($meta_key == 'meta_key_you_are_ordering_by') {

        //Get all users and loop through meta
        

    }

});