[英]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))));
?>
给出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.