PHP獲取索引陣列的笛卡爾積

2021-10-03 03:08:01 字數 1637 閱讀 4143

需求【商品規格的笛卡爾積同理】:

根據幾項不同指標項中的不同指標,獲取其相互組合的笛卡爾積,返回的是帶有原陣列索引的笛卡爾積結果,且陣列值的資料型別保持不變。

整體思路:

1、通過第乙個陣列拼裝出結果集的資料結構。

2、然後依次處理結果集與其它陣列的笛卡爾積。

詳細**示例:

$params = [

'gender' => ['男', '女'],

'city' => [["北京"], ["上海", "深圳"]],

'brand' => ["蘋果", "華為"],

];$result = cartesianmultiindexarray($params);

var_dump($result);

/** * 多個索引陣列笛卡爾積

* @param array $params

* @return array

*/function cartesianmultiindexarray($params)

break;

}array_shift($params);

if (empty($params))

foreach ($params as $key => $val)

return $result;

}/**

* 獲取前兩個陣列笛卡爾積的結果與下乙個陣列的笛卡爾積

* @param array $resultval

* @param array $nextarr

* @param string $keyname

* @return array

*/function cartesiannextarraytoresult($resultval, $nextarr, $keyname)

}return $result;

}

結果如下:

array(8) 

["brand"]=>

string(6) "蘋果"

} [1]=>

array(3)

["brand"]=>

string(6) "華為"

} [2]=>

array(3)

["brand"]=>

string(6) "蘋果"

} [3]=>

array(3)

["brand"]=>

string(6) "華為"

} [4]=>

array(3)

["brand"]=>

string(6) "蘋果"

} [5]=>

array(3)

["brand"]=>

string(6) "華為"

} [6]=>

array(3)

["brand"]=>

string(6) "蘋果"

} [7]=>

array(3)

["brand"]=>

string(6) "華為"

}}

php實現笛卡爾積

1.定義 笛卡爾乘積是指在數學中,兩個集合x和y的笛卡尓積 cartesian product 又稱直積,表示為x y,第乙個物件是x的成員而第二個物件是y的所有可能有序對的其中乙個成員。2.實現方法一 arr array array 黑色 紅色 白色 黑色 紫色 array 36碼 37碼 38碼...

php實現笛卡爾積

問題 有那麼乙個陣列 arr array array 1,2,3 array 中 國 人 array a b c 要求使用php語言實現計算該陣列的笛卡爾積。實現過程如下所示 arr array array 1,2,3 array 中 國 人 array a b c function diker a...

php怎麼實現陣列的笛卡爾積

php實現陣列的笛卡爾積的方法 1 建立乙個php示例檔案 2 定義乙個陣列 3 通過 function dikaer arr 實現陣列的笛卡爾積運算即可。php怎麼實現陣列的笛卡爾積?php實現陣列的笛卡爾積運算示例 陣列的笛卡爾積在實際中還是挺有用處的,比如計算商品的規格時就經常用到,下面寫一種...