我试图用<p id=para>
和</p>
在PHP数组中包围字符串,这是我的代码。我跑的时候没有任何事情发生。
foreach($i=0;$i < count($tags); $i++){
$tags[$i] = "<p id=para>" . $tags[$i] . "<p>";
}
标签是我的字符串数组。
答案 0 :(得分:1)
你需要这样做。
foreach($tags as &$tag){
$tag = "<p id=para>" . $tag . "</p>";
}
&amp;引用标记而不是复制它,这是你的问题,它不会改变实际数组中的字符串。
答案 1 :(得分:0)
您的代码段中存在一些问题。
首先关闭:您使用的是foreach-loop
,但提供的参数就好像是for-loop
。
您生成invalid
HTML,您的id
属性需要将值括在"
或'
中,例如:id="para"
。
您的<p>
代码未关闭,而是后跟另一个<p>
代码(应为</p>
)。
您可以使用for-loop或foreach-loop,但它们的工作方式不同 for循环的写法很像你得到的那个:
for($i=0;$i < count($tags); $i++) { ...
虽然foreach看起来更像:
foreach($tags as &$tag) { ...
注意&
之前的$tag
符号,&
表示它是对象的引用,这意味着,如果您更改foreach loop
内的对象,它实际上会被改变,而不仅仅是在foreach
范围内。
这意味着您可以立即编辑$tag
对象,而不是从阵列中访问它
如果您宁愿从数组中访问它,但仍希望使用foreach
,则可以通过以下方式获取索引(键)和值:
foreach($tags as $key => $value) {
$tags[$key] = 'html' . $value . 'endhtml';
}
答案 2 :(得分:0)
您必须决定要使用哪个循环。目前看起来你错了for
&amp; foreach
循环。
幸运的是,这可以通过两种方式完成。
for
循环for($i = 0; $i < count($tags); $i++)
{
$tags[$i] = "<p id='para'>" . $tags[$i] . "</p>";
}
foreach
循环如前所述,但没有真正的解释:
foreach($tags as &$tag){
$tag = "<p id='para'>" . $tag . "</p>";
}
&$tag
引用,而不是副本,因此它会更新数组中的字符串。你尝试这样做的方式,只会改变它的副本。
最后,最后一件事 - 如果我建议,在指定html标签的属性时开始使用撇号/引号。它更干净,更有效,更好看。
答案 3 :(得分:-1)
使用
for($ i = 0; $ i&lt; count($ tags); $ i ++){
$tag[] = "<p id='para'>" . $tags[$i] . "<p>";
}
或使用
foreach($ tag as $ tg){
$tag[] = "<p id='para'>" . $tg . "</p>";
}