我使用preg_match_all并获得这样的数组
Array
(
[1] => Array
(
[0] => link1
[1] => link2
[2] => link3
[3] => link4
[4] => link5
)
[3] => Array
(
[0] => title1
[1] => title2
[2] => title3
[3] => title4
[4] => title5
)
)
我尝试使用array_merge,但这不是我想要的
我想要这样的foreach回报
<a href="link1" class=list-group-item> title1</a>
<a href="link2" class=list-group-item> title2</a>
<a href="link3" class=list-group-item> title3</a>
<a href="link4" class=list-group-item> title4</a>
<a href="link5" class=list-group-item> title5</a>
我该怎么做?
答案 0 :(得分:6)
首先,重置主阵列的键。
$array = array_values($array);
接下来,循环浏览一组数据,在我的示例中,我将使用第一组数据。在循环内部,您可以使用第一组数据中的键来获取第二组数据。
foreach($array[0] as $key => $href) {
$title = $array[1][$key];
echo "<a href='$href' class=list-group-item> $title</a>";
}
仅当您始终收到两组长度相同的数据时,此方法才起作用。
如果出于某种原因不想使用该方法,则可以使用array_shift();
。
$links = array_shift($array); //grab first set from array, and remove it from array.
$titles = array_shift($array);
foreach($links as $key => $link) {
$title = $titles[$key];
echo "<a href='$link' class=list-group-item> $title</a>";
}
答案 1 :(得分:1)
使用这样的构造将两个数组独立于其索引循环在一起
F, C and A
在PHP 7之前,您需要将其重写为foreach(array_map(null, ...$arr) as [$link,$title]) {
echo "<a href='$link' class=list-group-item> $title</a>";
答案 2 :(得分:0)
$keys=$array[1];
$values=$array[3];
$combines=array_combine($keys,$values);
foreach($combines as $key=>$value)
{
echo '<a href="'.$key.'" class=list-group-item> '.$value.'</a>';
}