相关疑难解决方法(0)

使用PHP关联数组查找笛卡尔积

假设我有一个如下所示的数组:

Array
(
    [arm] => Array
        (
            [0] => A
            [1] => B
            [2] => C
        )
    [gender] => Array
        (
            [0] => Female
            [1] => Male
        )
    [location] => Array
        (
            [0] => Vancouver
            [1] => Calgary
        )
)
Run Code Online (Sandbox Code Playgroud)

如何在保留外部关联数组的键并在内部数组中使用它们的同时找到笛卡儿积?算法的结果应该是这样的:

Array
(
    [0] => Array
        (
            [arm] => A
            [gender] => Female
            [location] => Vancouver
        )

    [1] => Array
        (
            [arm] => A
            [gender] => Female
            [location] => Calgary
        )

    [2] => Array
        (
            [arm] => A
            [gender] => …
Run Code Online (Sandbox Code Playgroud)

php algorithm associative-array cartesian-product

48
推荐指数
5
解决办法
2万
查看次数

有没有更好的方法来实现这些嵌套循环?

假设有三个数组:

char [] one = {'a','b','c'};
char [] two = {'1','2','3'};
char [] three = {'x','y','z'};
Run Code Online (Sandbox Code Playgroud)

如果我想像这样打印它们:

a 1 x
a 1 y
a 1 z

a 2 x
a 2 y
.....
c 3 z
Run Code Online (Sandbox Code Playgroud)

我必须创建三个嵌套循环;

for(char i : one)
  for(char j : two)
    for(char k : three)
       //.....
Run Code Online (Sandbox Code Playgroud)

假设我有7个数组,它将是7个嵌套循环.

是否有更好的方法可以做到这一点或API?我知道你可能会问你为什么做这样的事情,这只是思考的问题.

java loops for-loop

1
推荐指数
1
解决办法
1195
查看次数

PHP合并3个数组

我有3个数组:

array(1, 5, 1);
array(3, 2, 7, 5 ,4);
array(4, 3, 6, 5)
Run Code Online (Sandbox Code Playgroud)

我想合并它们并得到这样的结果:

array(
    array(1, 3, 4),
    array(5, 2, 3),
    array(1, 7, 6),
    array(5, 5),
    array(4)
);
Run Code Online (Sandbox Code Playgroud)

什么是最简单的方法?

php

1
推荐指数
1
解决办法
84
查看次数