>  기사  >  백엔드 개발  >  PHP 사용자 정의 함수는 데카르트 곱을 생성합니다.

PHP 사용자 정의 함수는 데카르트 곱을 생성합니다.

WBOY
WBOY원래의
2016-08-08 09:26:271379검색
<?php
	$color = array(&#39;red&#39;, &#39;green&#39;);
	$size = array(39, 40, 41);
	$local = array(&#39;beijing&#39;, &#39;shanghai&#39;);
	
	echo "<pre class="brush:php;toolbar:false">";
	print_r(combineDika($color, $size, $local));
	
	/**
	 * 所有数组的笛卡尔积
	 *
	 * @param unknown_type $data
	 */
	function combineDika() {
		$data = func_get_args();
		$cnt = count($data);
		$result = array();
		foreach($data[0] as $item) {
			$result[] = array($item);
		}
		for($i = 1; $i < $cnt; $i++) {
			$result = combineArray($result,$data[$i]);
		}
		return $result;
	}
	 
	/**
	 * 两个数组的笛卡尔积
	 *
	 * @param unknown_type $arr1
	 * @param unknown_type $arr2
	 */
	function combineArray($arr1,$arr2) {
		$result = array();
		foreach ($arr1 as $item1) {
			foreach ($arr2 as $item2) {
				$temp = $item1;
				$temp[] = $item2;
				$result[] = $temp;
			}
		}
		return $result;
	}
?>

실행 결과:

Array
(
    [0] => Array
        (
            [0] => red
            [1] => 39
            [2] => beijing
        )

    [1] => Array
        (
            [0] => red
            [1] => 39
            [2] => shanghai
        )

    [2] => Array
        (
            [0] => red
            [1] => 40
            [2] => beijing
        )

    [3] => Array
        (
            [0] => red
            [1] => 40
            [2] => shanghai
        )

    [4] => Array
        (
            [0] => red
            [1] => 41
            [2] => beijing
        )

    [5] => Array
        (
            [0] => red
            [1] => 41
            [2] => shanghai
        )

    [6] => Array
        (
            [0] => green
            [1] => 39
            [2] => beijing
        )

    [7] => Array
        (
            [0] => green
            [1] => 39
            [2] => shanghai
        )

    [8] => Array
        (
            [0] => green
            [1] => 40
            [2] => beijing
        )

    [9] => Array
        (
            [0] => green
            [1] => 40
            [2] => shanghai
        )

    [10] => Array
        (
            [0] => green
            [1] => 41
            [2] => beijing
        )

    [11] => Array
        (
            [0] => green
            [1] => 41
            [2] => shanghai
        )

)


위 내용은 내용의 측면을 포함하여 데카르트 곱을 생성하는 PHP 사용자 정의 함수를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.