This function can be used to see if a single item or a given XPath
match certain conditions.
public static matches ( array $data, mixed $conditions, integer $i = null, integer $length = null ) : boolean | ||
$data | array | An array of data to execute the match on. |
$conditions | mixed | An array of condition strings or an XPath expression. |
$i | integer | Optional: The 'nth'-number of the item being matched. |
$length | integer | |
return | boolean |
public function testMatchesMultipleLevels() { $result = array( 'Attachment' => array( 'keep' => array() ), 'Comment' => array( 'keep' => array('Attachment' => array('fields' => array('attachment'))) ), 'User' => array('keep' => array()), 'Article' => array( 'keep' => array( 'Comment' => array('fields' => array('comment', 'published')), 'User' => array('fields' => array('user')) ) ) ); $this->assertTrue(Set::matches($result, '/Article/keep/Comment')); $result = Set::matches($result, '/Article/keep/Comment/fields/user'); $this->assertFalse($result); }