Having worked in the Transportation industry over the past 12 years in South Florida, I can tell you many passengers choose their airport based on the airline they fly in on, not their port of departure for their cruise. Many of the lower cost airlines fly only into FLL, these include Alaska, Frontier, Spirit, JetBlue, and Southwest. Delta, United, and American have limited flights into FLL and usually only from their hubs or focus cities. Meanwhile, Miami is an American Hub airport and the major airport for international arrivals. It is usually 20 to 30 minutes travel time between MIA and Port Everglades as well as FLL and Port of Miami. I would choose the airport you fly into based on the best flight times/price of the flight over what is closer. I would also suggest flying in the day/night before your departure date of the cruise and stay in a hotel as delays can happen. I have seen many people miss their cruise because their flights were delayed. I have even taken some of these passengers down to Key West to meet their ship if it was the first port of call of the cruise.
You can always choose to stay at a hotel near the airport of arrival/departure, or midway between like in Hallandale/Sunny Isles Beach areas, or closer to the port of departure. Their is transportation easily found to get to the ports, but I would not try to walk in to the port as both have long distances from the entrance to the actual piers. Also Port Everglades is a fuel port and it's piers are not segregated from cruise piers, so everyone entering must be checked for ID's whether it is your passport w/itinerary or boarding documents, or for drivers their credentials. The Port of Miami has their cargo separated from the cruise terminals so it flows more freely.
Hope this helps, and if anyone has any inquiries, you can always PM me.