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