Q:

What is the difference between transfer_split and transfer?

Using the monero-wallet-rpc program, from the documentation, I can't understand the difference between transfer and transfer_split. When should I use transfer and  when should I use transfer_split? Please help me.

transfer
Send monero to a number of recipients.

transfer_split
Same as transfer, but can split into more than one tx if necessary.

A:

transfer, the older of the two commands, creates a single transaction. This can fail if you try to create a transaction with too many destinations / the transaction becomes too large.
transfer_split may create more than one transaction. This is useful if you are wanting to create transactions with a higher number of destinations as it can efficiently split the the transfer, as necessary, into multiple transactions.
If you are only ever doing single destination transfers, you can safely use either. If you need to create transfers to multiple destinations, it's safer to just use transfer_split.
IIRC, the only reason transfer still exists is for backwards compatibility, i.e. to not break existing applications that were built before transfer_split was added.

