这样可行但是,它可靠吗?它会一直有效吗,因为MAINarray包含的ANOTHERarray包含2个值,而min应该在MAINarray中工作并在他的子系统中找到最爱的值....
$a[0]=array(0=>522,1=>'Truck');
$a[1]=array(0=>230,1=>'Bear');
$a[2]=array(0=>13,1=>'Feather');
$a[3]=array(0=>40,1=>'Rabit');
$z=min($a);$y=max($a);
echo "The easiest is ".$z[1]." with only ".$z[0]." pounds!<br>";
echo "The haviest is ".$y[1]." with ".$y[0]." pounds!";
你说什么? :)
答案 0 :(得分:3)
是的,它很可靠。可以安全地假设min(array(1, 2, ..., n))
等同于min(1, 2, ..., n)
,documentation具体涵盖min
如何比较多个数组:
// With multiple arrays, min compares from left to right
// so in our example: 2 == 2, but 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)
答案 1 :(得分:2)
我对min
如何处理您的输入类型的理解是:
e.g:
array(
array(1, "A"),
array(2), // min
)
array(
array(1, "A"), // min
array(2, "A"),
)
array(
array(1, "Z"),
array(1, "A"), // min
)
我没有该信息的来源,但这是我记得它的工作方式。
答案 2 :(得分:1)
我不确定这是否一直有效。如有疑问,请自行实施该功能:
function extremes($array, $key=0) {
if (count($array) === 0) return null;
$min = $max = null;
foreach ($array as &$val) {
if (!isset($val[$key])) continue;
if ($min > $val[$key]) $min = $val[$key];
else if ($max < $val[$key]) $max = $val[$key];
}
return array($min, $max);
}
$a = array(array(522, 'Truck'), array(230, 'Bear'), array(13, 'Feather'), array(40, 'Rabit'));
list($z, $y) = extremes($a);
答案 3 :(得分:0)
我能找到的唯一证据就是能够使用数组阵列来比较这个错误报告来改进php文档。 http://bugs.php.net/bug.php?id=50607
虽然,他们不太可能删除此功能,因为它必须通过递归方式比较数组。正常使用函数时,参数列表本身就是一个数组,因为没有有限数量的参数。