foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
}
문자열 목록이 있으며 PHP를 사용하여 끝에 점을 추가하고 싶지만 위의 코드는 0을 반환합니까?substr 및 연결을 사용하는 PHP 생략 부호
foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
}
문자열 목록이 있으며 PHP를 사용하여 끝에 점을 추가하고 싶지만 위의 코드는 0을 반환합니까?substr 및 연결을 사용하는 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
@zerkms 그래, 나도 그래, 좋은 통찰력이 참으로 참다. – Ghost
@Ghost 나는이 코드를 아무 것도 사용하지 않는다. – user3522888
귀하의 질문은 당신이 붙어있는 곳으로 조금 불분명하다.
$products
어레이를 수정하려면 Ghost가 하나의 솔루션을 제공했습니다.
단순한 제품 이름의 배열을 원할 경우 나중에 전체 이름이 필요할 수도 있으므로 새 배열에 저장합니다. 이 코드는 어쩌면 당신 간단한 return
결과에 놓친 함수 내에 있을지
$shortNames = array();
foreach($products as $val)
{
$name = $val["name"];
if(strlen($name) > 5){
$name = substr($name,0,5) . '..';
}
$shortNames[] = $name;
}
당신은
하지만 코드를 반환 위의 0
을 썼다? 내 코드 예를 들어,
이 코드는 내가 알고하지만 난 붙어있어 .. $ name' 때마다' – Jenz
@Jenz 나중에 대체 할 함수의 끝에서
return $shortNames;
을 넣어 .. 초보자의 경우 – user3522888