繁体   English   中英

如何确定某个数组列的最大长度?

[英]How to determine max length of a certain array column?

该数组如下所示:

array(
  array(5, true, 'Foo'),
  array(8, true, 'Bar'),
  array(8, true, 'FooBar'),
)

我可以确定第3列的最长字符串长度,而不必迭代数组吗?

在我的例子中,最长的字符串是“FooBar” - 6个字符。

如果内部数组只有字符串元素,我可以做max(array_map('strlen', $arr)) ,但它有3个项目......

array_map('array_pop', $arr)到组合中:

<?php

$arr = array(
  array(5, true, 'Foo'),
  array(8, true, 'Bar'),
  array(8, true, 'FooBarss')
);

print_r(max(array_map('strlen', array_map('array_pop', $arr))));

?>

http://codepad.org/tRzHoy7Z

给出8 (在我添加两个ss检查)。 array_pop()关闭最后一个数组元素并返回它,使用array_shift()获取第一个数组元素。

首先,我非常确定max函数遍历整个数组。 但如果您使用它就可以了,那么您可以定义自己的比较函数并传递它。

function cmp($a, $b) {
    if (strlen($a[2]) == strlen($b[2])))
        return 0;
    return (strlen($a[2]) < strlen($b[2])) ? -1 : 1;
}

max(array_map('cmp', $arr))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM