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