我想限制每个数组,我尝试使用此代码无法正常工作,请在高级中将此感谢。 我的密码:
$a = [
"name1" => ['Dewa','Aditya','Pratama'],
"name2" => ['Brian','Dzikri','Ramadhan'],
];
$result_shortdes = "";
foreach ($a as $values) {
foreach ($values as $value) {
if(strlen($result_shortdes) + strlen($value) <= 15)
{
$result_shortdes .= "$value,";
}
}
}
echo '<pre>';
print_r($result_shortdes);
echo '<pre>';
我的期望值是这样的: 1. Dewa,Aditya, 2. Brian,
上面的值是因为字符串未达到15个字符。
请帮助我解决这个问题,谢谢。
答案 0 :(得分:2)
每次使用下一个名称时,都需要重设result_shortdes
以重新计算名称长度,将变量放置在第一个循环中,如下所示:
foreach ($a as $values) {
$result_shortdes = "";
foreach ($values as $value) {
if(strlen($result_shortdes) + strlen($value) <= 15)
{
$result_shortdes .= "$value,";
}
}
echo '<pre>';
print_r($result_shortdes);
echo '<pre>';
}
答案 1 :(得分:0)
您可以使用$result_shortdes
来指定长度,并使用$result
来存储结果,如下所示
$a = [
"name1" => ['Dewa','Aditya','Pratama'],
"name2" => ['Brian','Dzikri','Ramadhan'],
];
$result_shortdes = "";
$result = [];
foreach ($a as $values) {
$result_shortdes = "";
foreach ($values as $value) {
if(strlen($result_shortdes) + strlen($value) <= 15)
{
$result_shortdes .= "$value,";
}else{
$result[] = $result_shortdes;
break;
}
}
}
echo '<pre>';
print_r($result);
echo '<pre>';