首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在php中将一个数组的第0个索引与另一个数组的第0个索引合并

在php中将一个数组的第0个索引与另一个数组的第0个索引合并
EN

Stack Overflow用户
提问于 2019-07-04 20:37:58
回答 3查看 61关注 0票数 1

我是PHP新手。我想组合从第0个索引开始的两个数组,例如

代码语言:javascript
运行
复制
$a = [7, 5, 6, 9]
$b = [1, 3, 2, 4]

结果应该是

代码语言:javascript
运行
复制
$c = ["7-1", "5-3", "6-2", "9-4"];
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-04 20:42:16

您可以使用一个简单的foreach循环,并将它们放在一起。当然,这要求$b中的元素数量至少与$a中的元素数量一样多。

代码语言:javascript
运行
复制
$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的最后一次迭代时停止,方法是执行..检查该元素是否存在。

代码语言:javascript
运行
复制
$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];
}
票数 2
EN

Stack Overflow用户

发布于 2019-07-04 21:01:25

你可以使用一行代码,

代码语言:javascript
运行
复制
$result = array_map(function($a1,$b1){ return $a1.'-'.$b1; },$a,$b);

array_map接受多个数组,同时我们可以接收每个数组的实例。

Demo

票数 1
EN

Stack Overflow用户

发布于 2019-07-04 21:01:25

您可以在array_walk中使用array_combine

代码语言:javascript
运行
复制
$c = array_combine($a,$b);
$r = [];
array_walk($c, function($k,$v) use (&$r){$r[] = "{$v}-{$k}";});
print_r($r);

DEMO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56888133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档