0

我有两个数组输出(使用preg_match_all),例如:$name[1]$family[1].

我需要把这些数组放在一起,我foreach这样使用:

foreach( $name[1] as  $name) {
    foreach( $family[1] as  $family) {
    echo  $name.$family.'<br />';
   }
}

但它不起作用。

(每个foreach循环单独工作)

4

3 回答 3

1

假设他们有匹配的循环键:

foreach( $name as $key => $value) {

    echo  $value[$key] . $family[$key] . '<br />';

}

这将遍历每个匹配$name项并将其打印出来,然后打印出与之对应$family的内容。我不认为你想硬编码[1]

如果你这样做了,我有点困惑,希望看到var_dump两者$name$family澄清。

于 2013-09-02T00:36:40.437 回答
0
$together= array();
foreach( $name as $key => $n) {
   $tuple= array('name'=>$name[$key],'family'=>$family[$key]);
   $together[$key]= $tuple;
}

foreach( $together as $key => $tuple) {
   echo "{$tuple['name']} {$tuple['family']}<br />"; 
}
于 2013-09-02T01:39:57.883 回答
0

使用array_combine()

通过将 keys 数组中的值用作键并将 values 数组中的值用作相应值来创建一个数组。

PHP代码:

$nameFamilly=array_combine($name[1] , $family[1]);
foreach(  $nameFamilly as  $name=>$familly) {

    echo  $name.$family.'<br />';

}
于 2013-09-02T01:46:32.703 回答