标签: array-merge

如何交错两个数组?

如果我有两个阵列,例如

let one = [1,3,5]
let two = [2,4,6]
Run Code Online (Sandbox Code Playgroud)

我想以下列模式合并/交错数组[one [0],two [0],one [1],two [1] etc ....]

//prints [1,2,3,4,5,6]
let comibned = mergeFunction(one, two)
print(combined)
Run Code Online (Sandbox Code Playgroud)

实现组合功能的好方法是什么?

func mergeFunction(one: [T], _ two: [T]) -> [T] {
    var mergedArray = [T]()
    //What goes here
    return mergedArray
}
Run Code Online (Sandbox Code Playgroud)

arrays array-merge swift

12
推荐指数
2
解决办法
2933
查看次数

在PHP中的关联数组上进行数组合并

我如何在关联数组上执行array_merge,如下所示:

数组1:

$options = array (
"1567" => "test",
"1853" => "test1",
);
Run Code Online (Sandbox Code Playgroud)

数组2:

$option = array (
"none" => "N/A"
);
Run Code Online (Sandbox Code Playgroud)

所以我需要array_merge这两个,但是当我这样做时(在调试中):

Array
(
    [none] => N/A
    [0] => test
    [1] => test1
)
Run Code Online (Sandbox Code Playgroud)

php array-merge

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

如何在保留密钥的同时合并多维数组?

这些阵列有没有办法

$array1 = array(
    '21-24' => array(
        '1' => array("...")
    )
);

$array2 = array(
    '21-24' => array(
        '7' => array("..."),
    )
);

$array3 = array(
    '25 and over' => array(
        '1' => array("...")
    )
);

$array4 = array(
    '25 and over' => array(
        '7' => array("...")
    )
);
Run Code Online (Sandbox Code Playgroud)

要合并哪个结果到下面的数组?

array(
    '21-24' => array(
        '1' => array("..."),
        '7' => array("...")
    ),      
    '25 and over' => array(
        '1' => array("..."),
        '7' => array("...")
    )
);
Run Code Online (Sandbox Code Playgroud)

注意:

  • 我无法控制阵列结构,所以任何需要改变结构的解决方案都不是我想要的
  • 我主要感兴趣的是保留前两个级别的键,但更强大的解决方案是可以处理所有级别的解决方案.

我试过像这样使用array_merge_recursive() …

php arrays array-merge

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

为什么要在PHP中合并$ _GET和$ _POST?

我刚刚在学习wordpress源代码(PHP)时看到了这段代码,你可以看到它们是mergre /将所有get和post值转换为1个请求数组.

现在据我所知,$ _GET和$ _POST已经可以通过调用$ _REQUEST 而不使用array_merge()函数,所以任何想法为什么他们会这样做?

$_REQUEST = array_merge($_GET, $_POST);
Run Code Online (Sandbox Code Playgroud)

php array-merge

9
推荐指数
2
解决办法
1万
查看次数

在特定键上合并两个多维数组

假设我有以下数组:

Array
    (
        [0] => Array
            (
                [id] => 5
                [name] => Education
            )

        [1] => Array
            (
                [id] => 4
                [name] => Computers
            )

        [3] => Array
            (
                [id] => 7
                [name] => Science

        [4] => Array
            (
                [id] => 1
                [name] => Sports
            )
    )
Run Code Online (Sandbox Code Playgroud)

第二个:

Array
    (
        [0] => Array
            (
                [id] => 1
                [title] => Sport
            )

        [1] => Array
            (
                [id] => 7
                [title] => Sci
            )

        [3] => Array
            (
                [id] => 4
                [title] …
Run Code Online (Sandbox Code Playgroud)

php multidimensional-array array-merge

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

array_merge&array_unique

在PHP中是否有一个数组函数以某种方式执行array_merge,比较,忽略键?我认为这array_unique(array_merge($a, $b))有效,但我相信必须有一个更好的方法来做到这一点.

例如.

$a = array(0 => 0, 1 => 1, 2 => 2);
$b = array(0 => 2, 1 => 3, 2 => 4);
Run Code Online (Sandbox Code Playgroud)

导致:

$ab = array(0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4);
Run Code Online (Sandbox Code Playgroud)

请注意,我不关心键$ab,但是如果它们是从0开始提升它们会很好count($ab)-1.

php arrays array-merge array-unique

8
推荐指数
1
解决办法
3万
查看次数

Ruby的Enumerable#zip是否在内部创建数组?

Ruby中 -有人说,优雅地比较两个枚举器

zip的问题在于它在内部创建数组,无论你通过什么Enumerable.输入参数的长度还有另一个问题

我看了一下YARV中Enumerable#zip的实现,并看到了

static VALUE
enum_zip(int argc, VALUE *argv, VALUE obj)
{
    int i;
    ID conv;
    NODE *memo;
    VALUE result = Qnil;
    VALUE args = rb_ary_new4(argc, argv);
    int allary = TRUE;

    argv = RARRAY_PTR(args);
    for (i=0; i<argc; i++) {
        VALUE ary = rb_check_array_type(argv[i]);
        if (NIL_P(ary)) {
            allary = FALSE;
            break;
        }
        argv[i] = ary;
    }
    if (!allary) {
        CONST_ID(conv, "to_enum");
        for (i=0; i<argc; i++) {
            argv[i] = rb_funcall(argv[i], conv, 1, ID2SYM(id_each));
        }
    }
    if (!rb_block_given_p()) { …
Run Code Online (Sandbox Code Playgroud)

c ruby yarv array-merge

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

如何通过仅接管第二个数组中与第一个数组具有相同键的值来合并两个数组?

我想将两个数组相互合并:

$filtered = array(1 => 'a', 3 => 'c');
$changed = array(2 => 'b*', 3 => 'c*');
Run Code Online (Sandbox Code Playgroud)

合并应包括其中所有元素的$filtered所有元素以及$changed具有相应键的所有元素$filtered:

$merged = array(1 => 'a', 3 => 'c*');
Run Code Online (Sandbox Code Playgroud)

array_merge($filtered, $changed)将增加的附加键$changed进入$filtered为好.所以它并不适合.

我知道我可以$keys = array_intersect_key($filtered, $changed)用来获取两个数组中存在的密钥,这已经是工作的一半.

但是我想知道是否有任何(本机)函数可以将$changed数组减少到具有$keys指定的数组array_intersect_key?我知道我可以使用array_filter回调函数并在$keys其中进行检查,但是可能还有一些其他纯粹的本机函数只能从一个可以指定键的数组中提取那些元素?

我问,因为本机函数通常比array_filter回调快得多.

php arrays filter array-merge array-key

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

如何防止array_merge重新编号数字键

我有一个看起来像这样的数组:

Array ( 
    [0] => Array ( [unit_id] => 1 [unit_name] => Clown Fish) 
    [1] => Array ( [unit_id] => L [unit_name] => Liter ) 
    [2] => Array ( [unit_id] => 2 [unit_name] => Elephant  ) 
    [3] => Array ( [unit_id] => 3 [unit_name] => Water Bottle ) 
    [4] => Array ( [unit_id] => 4 [unit_name] => Office Seating ) 
    [5] => Array ( [unit_id] => 5 [unit_name] => Green Green Grass ) 
)
Run Code Online (Sandbox Code Playgroud)

然后,我写了一个函数

function array_to_list($arr_data, $str_key, $str_value) { …
Run Code Online (Sandbox Code Playgroud)

php arrays array-merge

8
推荐指数
2
解决办法
3873
查看次数

在PHP中合并3个数组

我有3个数组如下.

$array1 = Array
(
    [0] => 05/01
    [1] => 05/02
)

$array2 =Array
(
    [0] => ED
    [1] => P
)

$array3 =Array
(
    [0] => Mon
    [1] => Tue

)
Run Code Online (Sandbox Code Playgroud)

我想合并这三个数组,如下所示$result_array.我编写了如下代码.但它给了一个空数组.

$result_array =Array
(
    [0] => Array
        (
            [0] => 05/01
            [1] => ED
            [2] => Mon
        )
    [1] => Array
        (
            [0] => 05/02
            [1] => P
            [2] => Tue
        )
)
Run Code Online (Sandbox Code Playgroud)

码:

for($z=0; $z<count($array1); $z++){
    $all_array[$z][] = array_merge($array1[$z],$array2[$z] );
    $all_array2[$z] = array_merge($all_array[$z],$array3[$z] );
} …
Run Code Online (Sandbox Code Playgroud)

php arrays array-merge

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