如何计算数组中字符串长度的方式:
$mainArray = [
[4],
[3, 4],
[2, 30, 43, 65, 53, 634]];
所需输出:
1
1,1
1,2,2,2,2,3
我的意思是更改为字符串使用字符串计数功能,但是可以直接在数组上做吗?
答案 0 :(得分:0)
PHP有一个array_map()
可以帮助你做到这一点。
function countString($s) {
return strlen((string)$s);
}
function countArray($arr) {
return array_map("countString", $arr);
}
$result = array_map("countArray", $mainArray);
老实说,我认为使用两个循环会更容易和更清晰......
答案 1 :(得分:0)
试试这个,
$mainArray = [
[4],
[3, 4],
[2, 30, 43, 65, 53, 634]];
foreach($mainArray as $key => $element):
foreach($element as $ele):
$eleString = countString($ele);
if(count($element)>1) $eleString .= ',';
echo $eleString;
endforeach;
echo '<br/>';
endforeach;
function countString($s) {
return strlen((string)$s);
}
答案 2 :(得分:0)
您可以将array_map()
与内置函数implode
和strlen
一起使用:
$mainArray = [
[4],
[3, 4],
[2, 30, 43, 65, 53, 634]];
print_r(array_map(function ($v) {
return implode(',', array_map('strlen', $v));
},
$mainArray));
输出:
Array
(
[0] => 1
[1] => 1,1
[2] => 1,2,2,2,2,3
)