如果我有两个阵列,例如
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) 我如何在关联数组上执行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) 这些阵列有没有办法
$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() …
我刚刚在学习wordpress源代码(PHP)时看到了这段代码,你可以看到它们是mergre /将所有get和post值转换为1个请求数组.
现在据我所知,$ _GET和$ _POST已经可以通过调用$ _REQUEST 而不使用array_merge()函数,所以任何想法为什么他们会这样做?
$_REQUEST = array_merge($_GET, $_POST);
Run Code Online (Sandbox Code Playgroud) 假设我有以下数组:
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中是否有一个数组函数以某种方式执行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.
在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) 我想将两个数组相互合并:
$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回调快得多.
我有一个看起来像这样的数组:
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) 我有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) array-merge ×10
php ×8
arrays ×6
array-key ×1
array-unique ×1
c ×1
filter ×1
ruby ×1
swift ×1
yarv ×1