我坚持为我的链接小部件编写foreach循环。
我做了var_export($ instance,true),输出是
'title' => ' Widget title',
'image1' => 'img url',
'link_title1' => 'Some link title',
'target_type1' => '1',
'link_url1' => 'some url',
'image2' => '',
'link_title2' => 'Some link title',
'target_type2' => '1',
'link_url2' => 'some url',
'image3' => 'img url',
'link_title3' => 'Some link title',
'link_url3' => '',
'image4' => 'img url',
'link_title4' => 'Some link title',
'link_url4' => '',
'image5' => '',
'link_title5' => 'Some link title',
'link_url5' => '',
所以直到值达到数字10.我的首选输出是:
echo '<li>';
if ($instance{'target_type' . $i} == 0) {
echo '<img src=" '.$instance{'image' . $i} .' "><a href=" '. $instance{'link_url' . $i} .' ">' . $instance{'link_title' . $i} . '</a>';
}
else {
echo '<img src=" '.$instance{'image' . $i} .' "><a href=" '. $instance{'link_url' . $i} .' " target="_blank">' . $instance{'link_title' . $i} . '</a>';
}
echo '</li>';
但是,我不知道如何将foreach数组设置为值以实现工作。
答案 0 :(得分:2)
从您的问题来看,您正在寻找的是for
循环,而不是foreach
:
for ($i = 1; $i <= 10; ++$i) {
echo '<li>';
if ($instance['target_type' . $i] === '0') {
echo '<img src="' . $instance['image' . $i] . '"><a href="' . $instance['link_url' . $i] . '">' . $instance['link_title' . $i] . '</a>';
} else {
echo '<img src="' . $instance['image' . $i] . '"><a href="' . $instance['link_url' . $i] . '" target="_blank">' . $instance['link_title' . $i] . '</a>';
}
echo '</li>';
}
此循环将从$ i = 1计算到$ i = 10.看起来这是您的意图......