Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
使用substr和连接的PHP省略号_Php_Arrays - Fatal编程技术网

使用substr和连接的PHP省略号

使用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

我有一个字符串列表,我想使用PHP在它的末尾添加点,但上面的代码返回0?

如果您想进行更改,您需要引用foreach中的副本

例如:

    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;

}