در mysql_fetch_array میشه نتایج کوئری رو بصورت آرایه ذخیره کرد.
mysql_fetch_array آرایه با اندیس عددی و رشته ای میده ولی mysql_fetch_assoc آرایه رو با اندیس رشته ای بر میگردونه.
mysql_fetch_row مجموعه جواب رو به صورت یه آرایه ی شمارشی برمیگردونه.
mysql_fetch_array در حالت عادی (بدون مشخص کردن پارامتر دوم)، هر دو نوع اندیس (رشته ای و عددی) رو برمیگردونه، حافظه ای معادل با دو برابر mysql_fetch_assoc و mysql_fetch_row مصرف میکنه و اصلاً بهینه نیست. اگه بخواین پارامتر دوم رو هم مشخص کنید که فقط یک نوع رو برگردونه، باز هم کار اضافه انجام دادین چون توابع assoc… و row… همون کار رو با دردسر کمتر انجام میدن. برای اینکه تفاوت این دستورات رو متوجه بشین، کافیه یکبار با var_dump خروجی اونها رو بررسی کنید.