Ability to order fields for each content in a content type
It's not clear how you define the order of the field, but if you put extra information in the node and want to use this to change the order of the fields before output, you can use the weight property to change the order in an alter hook:

hook_node_view_alter(&amp;$build) {
if ( $build['field_sort_order']['0']['#text'] == 'sort it this way' ) {
   $build['field1']['#weight'] = -10;
   $build['field2']['#weight'] = 10;
   ...
}
...