在php

时间:2019-07-04 12:37:57

标签: php arrays

我是PHP新手。我想结合两个数组从第0个索引 例如

$a = [7, 5, 6, 9]
$b = [1, 3, 2, 4]

结果应为

$c = ["7-1", "5-3", "6-2", "9-4"];

3 个答案:

答案 0 :(得分:2)

您可以使用简单的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];
}

答案 1 :(得分:1)

您可以使用单线,

$result = array_map(function($a1,$b1){ return $a1.'-'.$b1; },$a,$b);

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

Demo

答案 2 :(得分:0)

您可以将array_combinearray_walk一起使用

$c = array_combine($a,$b);
$r = [];
array_walk($c, function($k,$v) use (&$r){$r[] = "{$v}-{$k}";});
print_r($r);

DEMO