Functions are blocks of code that perform tasks and can be reused. Large projects require functions to organize code and avoid repetition. Functions accept input, process it, and return output. Functions can be built-in to PHP or user-defined. User-defined functions are created using the function keyword and can accept arguments passed by value or reference. Arrays allow storing multiple values and are indexed with keys and values. Arrays can be numerically or associatively indexed.