在PHP中将字符前置到项目数组

在PHP中将字符前置到项目数组,php,Php,我试着用一根绳子,像 php、mysql、css 把它变成#php#mysql#css 到目前为止我所拥有的。。。 $hashTagStr = "php,mysql,css"; $hashTags = explode(",", $hashTagStr); foreach($hashTags as $k => $v){ $hashTagsStr = ''; $hashTagsStr .= '#'.$v.' '; } echo $hashTagsStr; ?> 问

我试着用一根绳子,像

php、mysql、css
把它变成<代码>#php#mysql#css

到目前为止我所拥有的。。。
$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);

foreach($hashTags as $k => $v){
    $hashTagsStr = '';
    $hashTagsStr .= '#'.$v.' ';
}
echo $hashTagsStr;

?>

问题是它只打印
#css

通过引用传递您的值:

$hashTags = array("php","mysql","css");

foreach ( $hashTags as &$v ) $v = "#" . $v;
然后敲出结果:

// #php #mysql #css
echo implode( " ", $hashTags );
演示:

让我们检查一下您正在做什么:

// You start with a string, all good.
$hashTagStr = "php,mysql,css";

// Blow it apart into an array - awesome!
$hashTags = explode( "," , $hashTagStr );

// Yeah, let's cycle this badboy!
foreach($hashTags as $k => $v) {

    // Iteration 1: Yeah, empty strings!
    // Iteration 2: Yeah, empty...wait, OMG!
    $hashTagsStr = '';

    // Concat onto an empty var
    $hashTagsStr .= '#'.$v.' ';
}

// Show our final output
echo $hashTagsStr;

通过引用传递您的值:

$hashTags = array("php","mysql","css");

foreach ( $hashTags as &$v ) $v = "#" . $v;
然后敲出结果:

// #php #mysql #css
echo implode( " ", $hashTags );
演示:

让我们检查一下您正在做什么:

// You start with a string, all good.
$hashTagStr = "php,mysql,css";

// Blow it apart into an array - awesome!
$hashTags = explode( "," , $hashTagStr );

// Yeah, let's cycle this badboy!
foreach($hashTags as $k => $v) {

    // Iteration 1: Yeah, empty strings!
    // Iteration 2: Yeah, empty...wait, OMG!
    $hashTagsStr = '';

    // Concat onto an empty var
    $hashTagsStr .= '#'.$v.' ';
}

// Show our final output
echo $hashTagsStr;

您应该将
$hashTagsStr='
行移到foreach循环外,否则每次都会重置它

您应该将
$hashTagsStr='
行移到foreach循环外,否则每次都会重置它

,这是因为每次循环运行时,您都通过执行以下操作来清除$hashTagsStr:

$hashTagsStr = '';
将其更改为:

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);
$hashTagsStr = '';
foreach($hashTags as $k => $v){
    $hashTagsStr .= '#'.$v.' ';
}
echo $hashTagsStr;

这是因为每次循环运行时,您都通过执行以下操作清除$hashTagsStr:

$hashTagsStr = '';
将其更改为:

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);
$hashTagsStr = '';
foreach($hashTags as $k => $v){
    $hashTagsStr .= '#'.$v.' ';
}
echo $hashTagsStr;
这个怎么样:

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);
$hashTagStr = '#' . implode( ' #', $hashTags );
…或:

$hashTagStr  = "php,mysql,css";
$hashTagStr = '#' . str_replace( ',', ' #', $hashTagStr );
这个怎么样:

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);
$hashTagStr = '#' . implode( ' #', $hashTags );
…或:

$hashTagStr  = "php,mysql,css";
$hashTagStr = '#' . str_replace( ',', ' #', $hashTagStr );

看起来像是
array\u walk

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);
array_walk($hashTags, function(&$value){ $value = "#" . $value ;} );
var_dump(implode(" ", $hashTags));
输出

 string '#php #mysql #css' (length=16)

看起来像是
array\u walk

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);
array_walk($hashTags, function(&$value){ $value = "#" . $value ;} );
var_dump(implode(" ", $hashTags));
输出

 string '#php #mysql #css' (length=16)

您正在循环内定义变量
$hashTagsStr

<?php

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);

$hashTagsStr = '';
foreach($hashTags as $k => $v){
    $hashTagsStr .= '#'.$v.' ';
}
echo $hashTagsStr;

您正在循环内定义变量
$hashTagsStr

<?php

$hashTagStr  = "php,mysql,css";
$hashTags = explode(",", $hashTagStr);

$hashTagsStr = '';
foreach($hashTags as $k => $v){
    $hashTagsStr .= '#'.$v.' ';
}
echo $hashTagsStr;

在循环的每次迭代中,您都在执行
$hashTagsStr=''。这是将变量设置为
'
,然后附加当前标记。因此,完成后,
$hashTagsStr
将只包含最后一个标记

此外,循环在这里似乎工作量太大,只需将
替换为
#
,就可以轻松得多。不需要把它分解成一个数组,也不需要循环。试试这个:

$hashTagStr  = "php,mysql,css";
$hashTagStr = '#'.str_replace(',', ' #', $hashTagStr);

在循环的每次迭代中,您都在执行
$hashTagsStr=''。这是将变量设置为
'
,然后附加当前标记。因此,完成后,
$hashTagsStr
将只包含最后一个标记

此外,循环在这里似乎工作量太大,只需将
替换为
#
,就可以轻松得多。不需要把它分解成一个数组,也不需要循环。试试这个:

$hashTagStr  = "php,mysql,css";
$hashTagStr = '#'.str_replace(',', ' #', $hashTagStr);
字符串中的语义是一个数组。➪ 所以最好尽快爆炸,并尽可能长时间地继续使用您的阵列

如图所示,您可以在PHP5.4+中工作

字符串中的语义是一个数组。➪ 所以最好尽快爆炸,并尽可能长时间地继续使用您的阵列


正如在PHP5.4+中所显示的那样。

Ooo,我还想回答这个问题:-)。您还可以使用
array\u map
<代码>$hashTags=array_-map(函数($a){return“#$a”},$hashTags):-POoo,我也想回答这个问题:-)。你也可以使用
array\u map
<代码>$hashTags=array_-map(函数($a){return“#$a”},$hashTags):-P