我是PHP新手。我想组合从第0个索引开始的两个数组,例如
$a = [7, 5, 6, 9]
$b = [1, 3, 2, 4]
结果应该是
$c = ["7-1", "5-3", "6-2", "9-4"];
发布于 2019-07-04 20:42:16
您可以使用一个简单的foreach
循环,并将它们放在一起。当然,这要求$b
中的元素数量至少与$a
中的元素数量一样多。
$a = [7, 5, 6, 9];
$b = [1, 3, 2, 4];
$result = [];
foreach ($a as $key=>$value) {
$result[] = $value.'-'$b[$key];
}
如果由于某种原因,您的数组没有数字索引,则可以使用array_values()
仅提取值(从而获得一个数字索引的数组)。
如果希望$b
比$a
短,可以在$b
的最后一次迭代时停止,方法是执行..检查该元素是否存在。
$a = [7, 5, 6, 9];
$b = [1, 3, 2, 4];
$result = [];
foreach ($a as $key=>$value) {
if (!isset($b[$key])) {
break;
}
$result[] = $value.'-'$b[$key];
}
发布于 2019-07-04 21:01:25
你可以使用一行代码,
$result = array_map(function($a1,$b1){ return $a1.'-'.$b1; },$a,$b);
array_map接受多个数组,同时我们可以接收每个数组的实例。
Demo。
发布于 2019-07-04 21:01:25
您可以在array_walk
中使用array_combine
$c = array_combine($a,$b);
$r = [];
array_walk($c, function($k,$v) use (&$r){$r[] = "{$v}-{$k}";});
print_r($r);
https://stackoverflow.com/questions/56888133
复制相似问题