计算数组内字符串的长度

时间:2018-05-03 00:46:11

标签: php arrays string-length

如何计算数组中字符串长度的方式:

$mainArray = [
    [4],
    [3, 4],
    [2, 30, 43, 65, 53, 634]];

所需输出:

1
1,1
1,2,2,2,2,3

我的意思是更改为字符串使用字符串计数功能,但是可以直接在数组上做吗?

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()与内置函数implodestrlen一起使用:

$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
)