It works like a charm.

Thanks, Andrej

Tim | iHostNZ wrote:
I know there must be a more elegant way with array_reduce or something, but
I would simply write a function called

function array_intersect_m($m_array) {
  $intersection = $m_array[0];
  for ($i=1; $i < count($m_array); $i++) {
    $intersection = array_intersect($m_array[$i], $intersection);
  }
  return $intersection;
}

and put that into my library. O and while i'm at it, the array_reduce way would prob be: $m_array = array(array("green","red","blue"),array("green","yellow","red"),array("green","red","purple"),array("green","red","yellow"));
array_reduce($m_array, 'array_intersect');

but this could be wrong, havent done much with these 'meta' functions.

Regards,
Tim


On Tue, Dec 2, 2008 at 10:24 PM, Andrej Kastrin <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Dear all,

    I have to perform an intersection on array of arrays. The fact is
    that php does not support intersection on multidimensional arrays.

    So, the first simple example using only one dimensional arrays works
    well:

    $array1 = array("green", "red", "blue");
    $array2 = array("green", "yellow", "red");
    $array3 = array("green", "red", "purple");
    $array4 = array("green","red","yellow");
    $result = array_intersect($array1,$array2,$array3,$array4);
    print_r($result);

    And the result is: Array ( [0] => green [1] => red )

    The question is how to perform intersection on the following structure:

    $products =
    
array(array("green","red","blue"),array("green","yellow","red"),array("green","red","purple"),array("green","red","yellow"));

    Thanks in advance for any suggestions.

    Best, Andrej

-- PHP General Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php




--
Tim-Hinnerk Heuer

http://www.ihostnz.com -- Web Design, Hosting and free Linux Support

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to