나는이 배열을하고 난 INPUT로 사용 :이 배열의 직교 제품을 인쇄해야데카르트 제품 - PHP
Array
(
[0] => Array
(
[11134] => 3.430
[11131] => 2.720
[11128] => 1.077
)
[1] => Array
(
[11135] => 2.381
[11132] => 2.636
[11129] => 2.920
)
[2] => Array
(
[11136] => 1.220
[11133] => 2.550
[11130] => 3.895
)
)
. 나는 here이라는 대답을 사용했으나 전혀 도움이되지 않습니다. 나는 존이 빨리를 만들기 위해 게시 기능을 수정 한 (정말 그냥 그래서 숫자로 배열을 인덱싱하지 않을 array_pop
에 대한 array_shift
전환) :
function cartesian($input) {
$result = array();
while (list($key, $values) = each($input)) {
if (empty($values)) {
continue;
}
if (empty($result)) {
foreach($values as $value) {
$result[] = array($key => $value);
}
}
else {
$append = array();
foreach($result as &$product) {
$product[$key] = array_pop($values);
$copy = $product;
foreach($values as $item) {
$copy[$key] = $item;
$append[] = $copy;
}
$values[] = $product[$key];
}
$result = array_merge($result, $append);
}
}
return $result;
}
인쇄 다음과 같은 배열을 지정해 답 :
Array
(
[0] => Array
(
[0] => 3.430
[1] => 2.920
[2] => 3.895
)
[1] => Array
(
[0] => 2.720
[1] => 2.920
[2] => 3.895
)
...
)
내가 정확히 원하는 것은 아닙니다. 함수의 원하는 출력은 다음과 같습니다
if (empty($result)) {
foreach($values as $key => $value) {
$result[] = array($key => $value);
}
}
:
Array
(
[0] => Array
(
[11134] => 3.430
[11129] => 2.920
[11130] => 3.895
)
[1] => Array
(
[11131] => 2.720
[11129] => 2.920
[11130] => 3.895
)
...
)
내가 필요처럼 내 새로운 배열의 첫 번째 요소를 만드는 방법에 함께했다
는 코드의 일부는 다음과 같습니다
하지만 그게 내가 붙어있어. 다른 값을 가져 와서 키를 잡고 키로 표시 할 수 없습니다. 내가 얻을 수 있었던 최종 배열은 이것처럼 보인다. 및 this code as a base을 사용 :
Array
(
[0] => Array
(
[11134] => 3.430
[1] => 2.920
[2] => 3.895
)
[1] => Array
(
[11131] => 2.720
[1] => 2.920
[2] => 3.895
)
...
)