Exemplo n.º 1
0
 /**
  * Test ac_array_overlay()
  *
  * @since 1.0.0
  */
 public function test_ac_array_overlay()
 {
     $a1 = array('apple' => 'banana', 'pear' => 'grape', 'vegetables' => array('cucumber' => 'asparagus'));
     $a2 = array('strawberry' => 'orange', 'apple' => 'kiwi', 'vegetables' => array('cucumber' => 'peas'));
     $overlayed = array('apple' => 'kiwi', 'pear' => 'grape', 'vegetables' => array('cucumber' => 'peas'));
     $this->assertEquals($overlayed, ac_array_overlay($a1, $a2));
 }
/**
 * Merge two arrays.
 *
 * @param  array $a1
 * @param  array $a2
 * @return array
 */
function ac_array_overlay($a1, $a2)
{
    foreach ($a1 as $k => $v) {
        if (!array_key_exists($k, $a2)) {
            continue;
        }
        if (is_array($v) && is_array($a2[$k])) {
            $a1[$k] = ac_array_overlay($v, $a2[$k]);
        } else {
            $a1[$k] = $a2[$k];
        }
    }
    return $a1;
}