使用substr和连接的PHP省略号
我有一个字符串列表,我想使用PHP在它的末尾添加点,但上面的代码返回0?如果您想进行更改,您需要引用foreach中的副本 例如:使用substr和连接的PHP省略号,php,arrays,Php,Arrays,我有一个字符串列表,我想使用PHP在它的末尾添加点,但上面的代码返回0?如果您想进行更改,您需要引用foreach中的副本 例如: foreach($products as $val) { $name = $val["name"]; if(strlen($name) > 5){ $name = substr($name,0,5) . '..'; } } 或者,如果您不喜欢这种方式,也可以使用fo
foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
}
或者,如果您不喜欢这种方式,也可以使用foreach的键将其直接指向该索引
foreach($products as &$val) {
// ^ reference
if(strlen($val['name']) > 5) {
$val['name'] = substr($val['name'], 0, 5) . ' ...';
}
}
最后,如果您根本不想做任何更改(只需输出echo),那么:
foreach($products as $key => $val) {
if(strlen($val['name']) > 5) {
$products[$key]['name'] = substr($val['name'], 0, 5) . ' ...';
// ^ use $key
}
}
你的问题有点不清楚你被困在哪里了 如果您想修改
$products
阵列,Ghost为您提供了一个解决方案
如果您只是想要一个简短的产品名称数组,我会将它们存储在一个新的数组中,因为您以后可能需要全名
foreach($products as $key => $val) {
$name = $val['name'];
if(strlen($name) > 5) {
$name = substr($name['name'], 0, 5) . '...';
}
echo $name; // you forgot to echo
}
你写的
但是上面的代码返回0
如果此代码在函数中,可能您只是错过了返回结果?
例如,对于我的代码,put
return$shortNames代码>在函数末尾此代码每次都将替换$name
。@Jenz ya我知道,但我被卡住了..对于新手来说,看一个使用$products[$key]['name']
的例子比使用引用更有用。@zerkms是的,我也这么认为,这是一个很好的见解indeed@user3522888你有可以用于此示例的示例数据吗?@user3522888哦,好的,检查我的修订版
$shortNames = array();
foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
$shortNames[] = $name;
}