如何限制数组中的数组

问题描述 投票:1回答:2

我想将每个数组限制为15个字符以内的字符串。我已经尝试过此代码,但是它不起作用:

$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,
php laravel-5.6
2个回答
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>'; }


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>';

© www.soinside.com 2019 - 2024. All rights reserved.