标签: array-merge

PHP:合并两个数组,同时保持键而不是重建索引?

如何在保留字符串/ int键的同时合并两个数组(一个使用string => value对,另一个使用int => value对)?它们都不会重叠(因为一个只有字符串而另一个只有整数).

这是我当前的代码(不起作用,因为array_merge使用整数键重新索引数组):

// get all id vars by combining the static and dynamic
$staticIdentifications = array(
 Users::userID => "USERID",
 Users::username => "USERNAME"
);
// get the dynamic vars, formatted: varID => varName
$companyVarIdentifications = CompanyVars::getIdentificationVarsFriendly($_SESSION['companyID']);
// merge the static and dynamic vars (*** BUT KEEP THE INT INDICES ***)
$idVars = array_merge($staticIdentifications, $companyVarIdentifications);
Run Code Online (Sandbox Code Playgroud)

php arrays array-merge

241
推荐指数
3
解决办法
14万
查看次数

Array_merge与+

当我使用array_merge()关联数组时,我得到了我想要的东西,但是当我将它们与数字键数组一起使用时,键就会被改变.

随着+该密钥将被保留,但它不与关联数组.

我不明白这是如何工作的,任何人都可以向我解释一下吗?

php arrays array-merge

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

字典词典合并

我需要合并多个词典,这是我的例子:

dict1 = {1:{"a":{A}}, 2:{"b":{B}}}

dict2 = {2:{"c":{C}}, 3:{"d":{D}}
Run Code Online (Sandbox Code Playgroud)

随着A B CD树的叶,像{"info1":"value", "info2":"value2"}

字典有一个未知的级别(深度),它可能是 {2:{"c":{"z":{"y":{C}}}}}

在我的例子中,它代表一个目录/文件结构,其中节点是docs并且是文件.

我想合并它们以获得:

 dict3 = {1:{"a":{A}}, 2:{"b":{B},"c":{C}}, 3:{"d":{D}}}
Run Code Online (Sandbox Code Playgroud)

我不确定如何使用Python轻松完成这项工作.

python merge dictionary array-merge

108
推荐指数
12
解决办法
5万
查看次数

PHP - 如何在数组中合并数组

如何在php中合并n个数组.我的意思是我怎么能这样做:
array_merge(from : $result[0], to : $result[count($result)-1])
OR
array_merge_recursive(from: $result[0], to : $result[count($result) -1])


其中$result包含多个数组的数组在哪里:

$result = Array(
0 => array(),//associative array
1 => array(),//associative array
2 => array(),//associative array
3 => array()//associative array
)
Run Code Online (Sandbox Code Playgroud)

我的结果是:

$result = Array(
    0 => Array(
        "name" => "Name",
        "events" => 1,
        "types" => 2
    ),
    1 => Array(
        "name" => "Name",
        "events" => 1,
        "types" => 3
    ),
    2 => Array(
        "name" => "Name",
        "events" => 1,
        "types" => 4
    ), …
Run Code Online (Sandbox Code Playgroud)

php array-merge

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

使用相同的键合并数组

在一个软件中,我将两个数组合并为array_merge函数.但我需要将相同的数组(当然具有相同的键)添加到现有数组中.

问题:

 $A = array('a' => 1, 'b' => 2, 'c' => 3);
 $B = array('c' => 4, 'd'=> 5);

 array_merge($A, $B);

 // result
 [a] => 1 [b] => 2 [c] => 4 [d] => 5
Run Code Online (Sandbox Code Playgroud)

如你所见,'c' => 3错过了.

那么我怎么能用相同的键合并所有这些呢?

php array-merge

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

带有数字键的PHP array_merge

如何使它成为array_merge()用两个数组覆盖具有不同值但相同键索引的两个键?

例如,合并:

[0] => 'whatever'

[0] => 'whatever', [1] => 'a', [2] => 'b'

应该产生

[0] => 'whatever', [1] => 'a', [2] => 'b'

基本上我希望array_merge与数组有字符串键时的行为方式相同...

php arrays array-merge

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

php array_merge关联数组

我试图将一个项目添加到关联数组的开头.我认为最好的方法是使用array_merge,但我有一些奇怪的后果.我从mysql数据库中获取了产品的id和名称,并将其作为关联数组返回,如此(不是实际数据返回,而是此问题的示例数据,表示数据的大致外观):

$products = array (1 => 'Product 1', 42 => 'Product 42', 100 => 'Product 100');
Run Code Online (Sandbox Code Playgroud)

这将被发送到一个html助手,以创建一个将键与值相关联的下拉列表,并将数组项的值设置为下拉选择控件中的文本.我需要第一个项目是"请选择",键为0,所以我这样做:

$products = array_merge(array(0 => "Select a product" ), $products);
Run Code Online (Sandbox Code Playgroud)

结果数组如下所示:

array(
  0 => 'Select a product', 
  1 => 'Product 1', 
  2 => 'Product 42', 
  3 => 'Product 100' 
);
Run Code Online (Sandbox Code Playgroud)

当我真正想要的是不丢失关联数组的键.有人告诉我,你可以适当地在我尝试的方式使用array_merge与关联数组,但是,我相信,因为我的键是整数,它不是处理数组作为一个真正的关联数组,并如上图所示对其进行压缩.

问题是:为什么array_merge函数会更改项目的键?我可以阻止这样做吗?或者还有另一种方法可以让我完成我想要做的事情,在数组的开头添加新项目吗?

php associative-array array-merge

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

php array_merge_recursive保留数字键

我只想合并

$a = array("59745506"=>array("up" => 0,));
$b = array("59745506"=>array("text" => "jfrj"));
$c = array_merge_recursive_new($a, $b);
Run Code Online (Sandbox Code Playgroud)

结果:

Array
(
    [0] => Array
        (
            [up] => 0
        )

    [1] => Array
        (
            [text] => jfrj
        )

)
Run Code Online (Sandbox Code Playgroud)

预期结果:

    Array
(
    [59745506] => Array
        (
            [up] => 0
            [text] => jfrj
        )

)
Run Code Online (Sandbox Code Playgroud)

http://www.php.net/manual/en/function.array-merge-recursive.php中的第2条评论正在运行,它是我案例的最佳解决方案(我需要将数组与多个数字键合并,和2级)?

另一种解决方法是使用array_map实现它(function()...

php array-merge

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

PHP深度扩展阵列

如何对多维关联数组进行深度扩展(用于解码的JSON对象).我需要PHP的等价于jQuery的$.extend(true, array1, array2)数组而不是JSON和PHP.

这是我需要的一个例子(array_merge_recursive似乎没有做同样的事情)

$array1 = ('1'=> ('a'=>'array1a', 'b'=>'array1b'));
$array2 = ('1'=> ('a'=>'array2a', 'c'=>'array2b'));

$array3 = array_extend($array1, $array2);

//$array3 = ('1'=> ('a'=>'array2a', 'b'=>'array1b', 'c'=>'array2b'))
Run Code Online (Sandbox Code Playgroud)

注意如果array1具有相同的值,则array2将如何覆盖array1(如类的扩展如何工作)

php jquery json array-merge

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

PHP:将数组插入另一个数组

我正在尝试规范化一串以逗号分隔的数字和一个范围.展示:

数组:

$array = ["1","2","5-10","15-20"];
Run Code Online (Sandbox Code Playgroud)

应成为:

$array = [1,2,5,6,7,8,9,10,15,16,17,18,19,20];
Run Code Online (Sandbox Code Playgroud)

我正在研究的算法是:

//get the array values with a range in it :
$rangeArray = preg_grep('[-]',$array);
Run Code Online (Sandbox Code Playgroud)

这将包含["5-10", "16-20"];Then:

foreach($rangeArray as $index=>$value){
    $rangeVal = explode('-',$value);
    $convertedArray = range($rangeVal[0],$rangeVal[1]);
}
Run Code Online (Sandbox Code Playgroud)

转换后的数组现在包含["5","6","7","8","9","10"] ;

我现在面临的问题是,如何在原始数组中弹出值"5-10",并在$ convertedArray中插入值,以便我将获得值:

$ array = ["1","2","5","6","7","8","9","10","16-20"];

那么,如何将数组插入数组?或者有更清洁的方法来解决这类问题吗?将数字和范围值的数组转换为正确排序的数字数组?

php arrays insert arraylist array-merge

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