我从两个foreach循环中获得了两个数组。
Array ([0] => Young Boys [1] => Vidi FC [2] => Ajax [3] => Independiente)
Array ([0] => Dinamo Zagreb [1] => AEK Athens [2] => Dynamo Kyiv [3] => Santos FC)
PHP代码
foreach($html->find('.col-home a') as $element)
$array1[] = $element->plaintext;
foreach($html->find('.col-guest a') as $element2)
$array2[] = $element2->plaintext;
如何获得此结果?
Young Boys - Dinamo Zagreb
Vidi FC - AEK Athens
Ajax - Dynamo Kyiv
Independiente - Santos FC
谢谢!
答案 0 :(得分:4)
使用for
循环遍历一个数组,并使用索引访问另一个数组并将它们组合到结果数组中。
$a1 = ['Young Boys', 'Vidi FC', 'Ajax', 'Independiente'];
$a2 = ['Dinamo Zagreb', 'AEK Athens', 'Dynamo Kyiv', 'Santos FC'];
$result = [];
for($i = 0; $i < count($a1); $i++) {
$result[] = $a1[$i] . ' - ' . $a2[$i];
}
var_dump($result);
5.6.30,hhvm-3.18.5-3.22.0、7.0.28-7.3.0beta2的输出
array(4) {
[0]=>
string(26) "Young Boys - Dinamo Zagreb"
[1]=>
string(20) "Vidi FC - AEK Athens"
[2]=>
string(18) "Ajax - Dynamo Kyiv"
[3]=>
string(25) "Independiente - Santos FC"
}
编辑:您还可以在循环中添加isset
检查,以确保您不会访问第二个数组中不可用的索引,例如
for($i = 0; $i < count($a1); $i++) {
if(isset($a1[$i]) && isset($a2[$i])) {
$result[] = $a1[$i] . ' - ' . $a2[$i];
}
}
答案 1 :(得分:2)
浏览一个数组并从另一个数组中找到具有相同索引的项目:
foreach ($array1 as $index => $val1)
echo $val1.' - '.$array2[$index].'<br />';
如果不确定数组的长度相同,则可以使用更长(或更短)的数组:
$count = max(count($array1), count($array2));
for ($i = 0; $i < $count; $i++)
echo (isset($array1[$i])?$array1[$i]:'').' - '.(isset($array2[$i])?$array2[$i]:'').'<br />';
编辑:感谢@Xatenev的评论,使用isset()
代替@
。
答案 2 :(得分:0)
尝试
$a = array( 'Young Boys' ,'Vidi FC' , 'Ajax' , 'Independiente');
$b = array( 'Dinamo Zagreb', 'AEK Athens', 'Dynamo Kyiv', 'Santos FC');
foreach ($a as $key => $val){
echo $val.' - '.$b[$key];
echo '<br />';
}
答案 3 :(得分:0)
在foreach中使用最长的数组。
foreach($array2 as $k =>$v){
$concrat[$v] = $array1[$k];
}