public static function contains(array $array1, array $array2)
{
if (!$array1 || !$array2) {
return false;
}
foreach ($array2 as $key => $val) {
if (!isset($array1[$key]) || $array1[$key] !== $val) {
return false;
}
if (is_array($val) && !static::contains($array1[$key], $val)) {
return false;
}
}
return true;
}
public function testContains() { $a = array( 0 => array('name' => 'main'), 1 => array('name' => 'about') ); $b = array( 0 => array('name' => 'main'), 1 => array('name' => 'about'), 2 => array('name' => 'contact'), 'a' => 'b' ); $this->assertTrue(Set::contains($a, $a)); $this->assertFalse(Set::contains($a, $b)); $this->assertTrue(Set::contains($b, $a)); }