Compact takes individual variables, and packs them into an associative array. Extract does the opposite.
<?php
// example code
// Set 2 variables
$var1 = "one";
$var2 = "two";
// Create associative array
$arr = compact('var1','var2');
// Show results
var_dump($arr);
/* Output
array(2) {
["var1"]=>
string(3) "one"
["var2"]=>
string(3) "two"
}
*/
// Clear out the originals
unset($var1);
unset($var2);
// Recreate the variables from the array
extract($arr);
// Output the variables to prove they're back
var_dump($var1,$var2);
/* Output
string(3) "one"
string(3) "two"
*/
Compact and Extract