Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';在php数组中不改变字符串_Php - Fatal编程技术网

Can';在php数组中不改变字符串

Can';在php数组中不改变字符串,php,Php,我试图在php数组中用和包围字符串,这是我的代码。当我运行它时,什么都不会发生 foreach($i=0;$i < count($tags); $i++){ $tags[$i] = "<p id=para>" . $tags[$i] . "<p>"; } foreach($i=0;$i

我试图在php数组中用

包围字符串,这是我的代码。当我运行它时,什么都不会发生

foreach($i=0;$i < count($tags); $i++){
    $tags[$i] = "<p id=para>" . $tags[$i] . "<p>";
}
foreach($i=0;$i”$tags[$i]。“”;
}

标记是我的字符串数组。

您需要这样做

foreach($tags as &$tag){
    $tag = "<p id=para>" . $tag . "</p>";
}
foreach($tags as&$tag){
$tag=“

”$tag。“

”; }

&引用标记而不是复制它,这是您的问题,它不会更改实际数组中的字符串。

或者使用

对于($i=0;$i
$tag[]=“

”$tags[$i]。“”;

}

或使用

foreach($tg标记){

$tag[]=”

“$tg.”

”;

}您的代码片段中存在一些问题

首先:您使用的是一个
foreach循环
,但提供的参数就好像它是一个
for循环

生成
无效的
HTML时,您的
id
属性需要将值括在
中,例如:
id=“para”

您的
标记没有关闭,而是紧跟着另一个
标记(应该是

您可以使用for循环或foreach循环,但它们的工作方式不同。
for循环的编写方式与您得到的非常相似:

 for($i=0;$i < count($tags); $i++) { ...
请注意
&
符号在
$tag
之前,
&
表示它是对对象的引用,这意味着,如果在
foreach循环
中更改对象,它实际上会被更改,而不仅仅是在
foreach
范围内

这意味着您可以立即编辑
$tag
对象,而不是从数组中访问它。
如果您宁愿从数组中访问它,但仍然希望使用
foreach
,则可以通过以下方式获取索引(键)和值:

foreach($tags as $key => $value) {
   $tags[$key] = 'html' . $value . 'endhtml';
}

您必须决定要使用哪一个循环。目前看来您将
误认为是
foreach
循环


幸运的是,这可以通过两种方式实现

用于
循环 如果
&$tag
是引用,而不是副本,那么它会更新数组中的字符串。按照您尝试的方式,它只会更改它的副本


最后,最后一件事——如果我可以推荐的话,在指定html标记的属性时开始使用撇号/引号。它更干净、更有效、更美观。

您是否忘记了以“

“还是仅仅是一个打字错误?此外,您还将and&foreach循环误认为是1。您正在混合使用
foreach
for
syntax 2。不要将html标记保存在数组中!(and)@Rizier123的可能副本为什么不将它们存储在数组中,直到打印它们?这可能是一个好主意,可以解释为什么这样做,特别是
&
符号的作用!)
 for($i=0;$i < count($tags); $i++) { ...
foreach($tags as &$tag) { ...
foreach($tags as $key => $value) {
   $tags[$key] = 'html' . $value . 'endhtml';
}
for($i = 0; $i < count($tags); $i++)
{
    $tags[$i] = "<p id='para'>" . $tags[$i] . "</p>";
}
foreach($tags as &$tag){
    $tag = "<p id='para'>" . $tag . "</p>";
}