Voting

: min(two, nine)?
(Example: nine)

The Note You're Voting On

karl at libsyn dot com
16 years ago
Given a multidimensional array that represents AND/OR relationships (example below), you can use a recursive function with array_intersect() to see if another array matches that set of relationships.

For example: array( array( 'red' ), array( 'white', 'blue' ) ) represents "red OR ( white AND blue )". array( 'red', array( 'white', 'blue' ) ) would work, too, BTW.

If I have array( 'red' ) and I want to see if it matches the AND/OR array, I use the following function. It returns the matched array,
but can just return a boolean if that's all you need:

<?php
$needle
= array( array( 'red' ), array( 'white', 'blue' ) );
$haystack = array( 'red' );

function
findMatchingArray( $needle, $haystack ) {
foreach(
$needle as $element ) {
$test_element = (array) $element;
if(
count( $test_element ) == count( array_intersect( $test_element, $haystack ) ) ) {
return
$element;
}

}
return
false;
}
?>

Pretty tough to describe what I needed it to do, but it worked. I don't know if anyone else out there needs something like this, but hope this helps.

<< Back to user notes page

To Top