如何限制多维数组中的字符串长度?
How to limit string length in a multidimensional array?
我有一个包含字符串 ($fulltable
) 的二维 PHP 数组,我试图将其放入数据表网格 (https://www.datatables.net/)。
有时候有些字符串真的很长。我想将每个字符串截断为 75 个字符,这将使字段在显示时更易于管理。
有没有一个简单的 PHP 函数可以做到这一点,还是我应该像这样创建一个双循环?
foreach ($fulltable as $row) {
foreach ($row as $field) {
// TRUNCATE FIELD HERE
}
}
您可以使用 array_walk_recursive()
来执行此操作并通过引用获取值,例如
array_walk_recursive($arr, function(&$v){
$v = substr($v, 0, 75);
});
使用mb_substr
:
mb_substr($field, 0, 30);
其中 0 是开始,30 是结束,30 可以是任何你想要的,输出的长度。
array_map()
or array_walk()
将函数应用于数组的内容(单维),并且可能比使用 foreach
.
循环更快
对于多维数组还有array_walk_recursive()
。
我有一个包含字符串 ($fulltable
) 的二维 PHP 数组,我试图将其放入数据表网格 (https://www.datatables.net/)。
有时候有些字符串真的很长。我想将每个字符串截断为 75 个字符,这将使字段在显示时更易于管理。
有没有一个简单的 PHP 函数可以做到这一点,还是我应该像这样创建一个双循环?
foreach ($fulltable as $row) {
foreach ($row as $field) {
// TRUNCATE FIELD HERE
}
}
您可以使用 array_walk_recursive()
来执行此操作并通过引用获取值,例如
array_walk_recursive($arr, function(&$v){
$v = substr($v, 0, 75);
});
使用mb_substr
:
mb_substr($field, 0, 30);
其中 0 是开始,30 是结束,30 可以是任何你想要的,输出的长度。
array_map()
or array_walk()
将函数应用于数组的内容(单维),并且可能比使用 foreach
.
对于多维数组还有array_walk_recursive()
。