Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP最小值和最大值与数组,是否可靠?_Php_Arrays_Logic - Fatal编程技术网

PHP最小值和最大值与数组,是否可靠?

PHP最小值和最大值与数组,是否可靠?,php,arrays,logic,Php,Arrays,Logic,这是可行的,但它可靠吗?由于MAINarray包含另一个包含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)

这是可行的,但它可靠吗?由于MAINarray包含另一个包含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 heaviest is ".$y[1]." with ".$y[0]." pounds!";
$a[0]=数组(0=>522,1=>'Truck');
$a[1]=数组(0=>230,1=>Bear');
$a[2]=数组(0=>13,1=>Feather);
$a[3]=数组(0=>40,1=>Rabit');
$z=最小值($a)$y=最大值($a);
echo“最简单的是“$z[1]”,只有“$z[0]”英镑!
”; 回声“最重的是“$y[1]”和“$y[0]”磅;

你说什么?

我不确定这是否总是有效的。如有疑问,请自行执行该功能:

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);
函数极值($array,$key=0){
if(count($array)==0)返回null;
$min=$max=null;
foreach($array as&$val){
如果(!isset($val[$key])继续;
如果($min>$val[$key])$min=$val[$key];
else if($max<$val[$key])$max=$val[$key];
}
返回数组($min,$max);
}
$a=数组(数组(522,‘卡车’)、数组(230,‘熊’)、数组(13,‘羽毛’)、数组(40,‘兔子’));
列表($z,$y)=极端($a);

我能找到的唯一证据表明,它旨在使用数组数组进行比较,这是一个用于改进php文档的错误报告


尽管如此,他们不太可能删除此功能,因为它必须通过递归方式比较已经存在的数组。在使用函数时,参数列表本身通常是一个数组,因为参数的数量不是有限的。

是的,它是可靠的。可以安全地假设
min(数组(1,2,…,n))
等同于
min(1,2,…,n)
,并且具体介绍了
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)
//对于多个数组,min从左到右进行比较
//在我们的例子中:2==2,但4<5
$val=min(数组(2,4,8),数组(2,5,1));//阵列(2,4,8)

我对
min
如何处理您的输入类型的理解是:

只考虑最少项数的数组。
  • 比较第一个元素
  • 如果存在平局,则比较每个数组的下一个元素。重复步骤
  • e、 g:


    我没有这些信息的来源,但我记得它是如何工作的。

    我说,自己测试它会产生最有益的结果。这是一种黑客行为。很好的修复,但没有什么可以建立的。@Dagon在我写它的时候,我测试了它:D lol@user。。。。我用10000个数据对它进行了测试,结果总是很好。这和最小和最大函数的作用是一样的。。。不是吗?对。。。我刚刚试过。。。你是对的$a[0]=数组(0=>522,1=>Truck')$a[1]=数组(0=>230,1=>'Bear',2=>'au');卡车比熊容易。。。谢谢你,康福斯!;)
    array(
      array(1, "A"),
      array(2),        // min
    )
    
    
    array(
      array(1, "A"),  // min
      array(2, "A"),        
    )
    
    array(
      array(1, "Z"),  
      array(1, "A"),  // min
    )