首頁 後端開發 php教程 PHP自訂函數產生笛卡兒積

PHP自訂函數產生笛卡兒積

Aug 08, 2016 am 09:26 AM
array gt

<?php
	$color = array('red', 'green');
	$size = array(39, 40, 41);
	$local = array('beijing', 'shanghai');
	
	echo "<pre>";
	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

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

華為GT3 Pro和GT4的差異是什麼?

修復:截圖工具在 Windows 11 中不起作用 修復:截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

修復:截圖工具在 Windows 11 中不起作用

如何修復無法連線到iPhone上的App Store錯誤 如何修復無法連線到iPhone上的App Store錯誤 Jul 29, 2023 am 08:22 AM

如何修復無法連線到iPhone上的App Store錯誤

使用C#中的Array.Sort函數對陣列進行排序 使用C#中的Array.Sort函數對陣列進行排序 Nov 18, 2023 am 10:37 AM

使用C#中的Array.Sort函數對陣列進行排序

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

簡單明了的PHP array_merge_recursive()函式使用方法 簡單明了的PHP array_merge_recursive()函式使用方法 Jun 27, 2023 pm 01:48 PM

簡單明了的PHP array_merge_recursive()函式使用方法

如何使用PHP中的array_combine函數將兩個陣列拼成關聯數組 如何使用PHP中的array_combine函數將兩個陣列拼成關聯數組 Jun 26, 2023 pm 01:41 PM

如何使用PHP中的array_combine函數將兩個陣列拼成關聯數組

watch4pro好還是gt好 watch4pro好還是gt好 Sep 26, 2023 pm 02:45 PM

watch4pro好還是gt好

See all articles