首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有像python的zip那样的php函数?

有没有像python的zip那样的php函数?
EN

Stack Overflow用户
提问于 2010-05-12 07:31:47
回答 13查看 21.5K关注 0票数 69

Python有一个很好的zip()函数。有没有PHP的等价物?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2010-05-12 09:17:15

只要所有数组的长度相同,就可以使用带有nullarray_map作为第一个参数。

代码语言:javascript
复制
array_map(null, $a, $b, $c, ...);

如果某些数组较短,则会将空值填充到最长数组的长度,这与python不同,在python中,返回的结果是最短数组的长度。

票数 101
EN

Stack Overflow用户

发布于 2010-05-12 07:41:05

array_combine非常接近。

否则就不像你自己编码了:

代码语言:javascript
复制
function array_zip($a1, $a2) {
  for($i = 0; $i < min(length($a1), length($a2)); $i++) {
    $out[$i] = [$a1[$i], $a2[$i]];
  }
  return $out;
}
票数 18
EN

Stack Overflow用户

发布于 2010-05-12 07:57:30

尝试使用此函数创建一个类似于Python的zip的数组数组

代码语言:javascript
复制
function zip() {
    $args = func_get_args();
    $zipped = array();
    $n = count($args);
    for ($i=0; $i<$n; ++$i) {
        reset($args[$i]);
    }
    while ($n) {
        $tmp = array();
        for ($i=0; $i<$n; ++$i) {
            if (key($args[$i]) === null) {
                break 2;
            }
            $tmp[] = current($args[$i]);
            next($args[$i]);
        }
        $zipped[] = $tmp;
    }
    return $zipped;
}

你可以给这个函数传递任意多的数组和任意多的项。

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

https://stackoverflow.com/questions/2815162

复制
相关文章

相似问题

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