首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的独立嵌套循环

PHP中的独立嵌套循环
EN

Stack Overflow用户
提问于 2019-05-21 09:38:40
回答 1查看 56关注 0票数 0

假设我有两个不同的数组。我希望从第一个数组中获取每个值,并将第二个数组中每个键的一些值添加到该数组中。我该怎么做呢?

我尝试在foreach循环中使用foreach循环,对于第一个数组中的每个值,它会附加第二个数组的每个值,而这并不是我想要的

代码语言:javascript
复制
$array1 = array(chris, kate, john, jane);
$array2 = array('first' => 1, 'second' => 2, 'third' => 3, 'fourth' => 4);

foreach($array1 as $name){
   foreach($array2 as $k => $v){
      echo $name . "-" . $v;
   }
}

我希望我的输出如下所示

代码语言:javascript
复制
chris-1
kate-2
john-3
jane-4

有时,两个数组的计数并不相同。第一个数组中的一些值生成一个空字符串,因此在这种情况下,它应该跳过该值。跳过或删除array1中的空字符串后,计数将与array2匹配

我上面的嵌套循环不能给我这个。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-21 10:50:42

首先,我将使用array_filter()$array1中删除空字符串

代码语言:javascript
复制
$array1 = array(chris, kate, john, jane);
$array1 = array_filter($array1, function($value) { 
    return $value !== ''; 
});

现在,我们需要对数组重新编制索引,以解决删除空字符串时出现的间隙。

代码语言:javascript
复制
$array1 = array_values($array1);

考虑到你不会在$array2中使用'first','second‘等键做任何事情,我们可以使用array_values()去掉它们。这将给我们留下一个像array(1,2,3,4)这样的数组,它将使稍后访问数据变得更容易一些。

代码语言:javascript
复制
$array2 = array('first' => 1, 'second' => 2, 'third' => 3, 'fourth' => 4);
$array2 = array_values($array2);

现在,我们可以遍历第一个数组并访问第二个数组中的相同位置,以创建最终的字符串。

代码语言:javascript
复制
// Assign the current element's numeric position to the $i variable on each iteration.
foreach($array1 as $i => $name){
    echo $name . "-" . $array2[$i];
}

最终代码

代码语言:javascript
复制
$array1 = ['chris', 'kate', '', 'john', 'jane'];
$array1 = array_filter($array1, function ($value) {
    return $value !== '';
});

$array1 = array_values($array1);

$array2 = ['first' => 1, 'second' => 2, 'third' => 3, 'fourth' => 4];
$array2 = array_values($array2);

foreach ($array1 as $i => $name) {
    echo $name . "-" . $array2[$i];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56230025

复制
相关文章

相似问题

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