foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
}
我有一个字符串的列表,我想在它的末尾添加点使用PHP,但上面的代码返回0?使用substr和concatenation的PHP省略
foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
}
我有一个字符串的列表,我想在它的末尾添加点使用PHP,但上面的代码返回0?使用substr和concatenation的PHP省略
如果您想进行更改,您需要在foreach中引用&
副本。
例子:
foreach($products as &$val) {
//^reference
if(strlen($val['name']) > 5) {
$val['name'] = substr($val['name'], 0, 5) . ' ...';
}
}
或者,如果你不舒服这种方式,也可以使用foreach的重点直接指向它是指数。
foreach($products as $key => $val) {
if(strlen($val['name']) > 5) {
$products[$key]['name'] = substr($val['name'], 0, 5) . ' ...';
//^use $key
}
}
最后,如果你不希望在所有(只输出回波)的任何变化,那么这样的:
foreach($products as $key => $val) {
$name = $val['name'];
if(strlen($name) > 5) {
$name = substr($name['name'], 0, 5) . '...';
}
echo $name; // you forgot to echo
}
对于新手这将是更使用'$ products [$ key] ['name']'而不是使用引用的例子更有用。 – zerkms 2014-09-24 07:31:49
@zerkms是啊我也虽然那,这是一个很好的见识确实 – Ghost 2014-09-24 07:32:19
@Ghost我使用此代码什么也没有发生.. – user3522888 2014-09-24 07:33:03
你的问题是有点不清楚你被卡住的位置。
如果您想修改您的$products
阵列,那么Ghost为您提供了一个解决方案。
如果你只是想要一个缩短的产品名称数组,我会将它们存储在一个新的数组中,因为以后可能需要全名。
$shortNames = array();
foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
$shortNames[] = $name;
}
你写
但上面的代码返回0
如果这个代码是一个函数里面,也许你简单错过了return
结果呢? 例如我的代码,把return $shortNames;
在函数结束
这个代码将取代'每次$ name' ... – Jenz 2014-09-24 07:18:17
@Jenz雅,但我知道我被困.. – user3522888 2014-09-24 07:22:43