Php 如何从数组行中获取最小值
我试图从列名称中包含“xx”的任何列中获取最小值 下面是我的代码:Php 如何从数组行中获取最小值,php,arrays,minimum,Php,Arrays,Minimum,我试图从列名称中包含“xx”的任何列中获取最小值 下面是我的代码: <?php $array = array( array( 'id' => 1, '10xx' => 14, '11xx' => 32, '12xx' => 4 ), array( 'id' => 2, '10xx' => 13, '11xx' => 36, '12xx' => 41 ) ); foreach($array a
<?php
$array = array(
array(
'id' => 1,
'10xx' => 14,
'11xx' => 32,
'12xx' => 4
),
array(
'id' => 2,
'10xx' => 13,
'11xx' => 36,
'12xx' => 41
)
);
foreach($array as $item)
{
$lowestKey = '';
foreach($item as $key => $value)
{
if(strpos($key, 'xx') === 0)
{
if($lowestKey == '')
{
$lowestKey = $key;
}
else
{
if($value < $item[$lowestKey])
{
$lowestKey = $key;
}
}
}
}
echo 'lowest for id ' . $item['id'] . ': ' . $item[$lowestKey] . "\n";
}
?>
您已经为它提供了一个功能:
如果这更符合您的需要,请将其与数组_值结合使用。只需使用min()函数,而不用在内部再次循环
$lowest_keys = array();
foreach($array as $item)
{
unset( $item[ 'id' ] );
$lowest_keys[] = min( $item );
}
或
$array=array(
排列(
“id”=>14,
“10xx”=>14,
“11xx”=>32,
“12xx”=>4
),
排列(
'id'=>2,
“10xx”=>13,
“11xx”=>36,
“12xx”=>41
)
);
$lowestKey='';
foreach($arra形式的数组){
foreach($arra as$key=>$value){
如果($key=='id'){
如果(($value<$lowestKey)| |($lowestKey==''){
$lowestKey=$value;
}
}
}
}
echo$lowestKey;
foreach()循环或array\u walk()
迭代每一行/子数组
array\u shift()
提取并显示id
(第一个元素)值min()
,以确定最低值1 : 4
2 : 13
“但我不能”-为什么?输出结果是什么?另外,看一看,您忘记了
id
也在数组中,这将导致最低的键
function find_lowest($array){
$new_array = array();
foreach($array as $key => $val ){
if(is_array($val)){
$new_array[$key] = find_lowest($val);
}else{
$new_array[$key] = $val ;
}
}
return min($new_array);
}
$array = array( array( 'id' => 1,
'10xx' => 14,
'11xx' => 32,
'12xx' => 4
),
array(
'id' => 2,
'10xx' => 13,
'11xx' => 36,
'12xx' => 41
)
);
echo find_lowest($array);
function _getNumber($array) {
return $array['id'];
}
$numbers = array_map('_getNumber', $array);
$numbers = array_map(function($array) {
return $array['id'];
}, $array);
echo $min = min($numbers);
echo $max = max($numbers);
$array = array(
array(
'id' => 14,
'10xx' => 14,
'11xx' => 32,
'12xx' => 4
),
array(
'id' => 2,
'10xx' => 13,
'11xx' => 36,
'12xx' => 41
)
);
$lowestKey = '';
foreach($array as $arra){
foreach ($arra as $key=>$value){
if ($key == 'id'){
if(($value < $lowestKey )||( $lowestKey== '')){
$lowestKey = $value;
}
}
}
}
echo $lowestKey;
$array = [
['id' => 1, '10xx' => 14, '11xx' => 32, '12xx' => 4],
['id' => 2, '10xx' => 13, '11xx' => 36, '12xx' => 41]
];
array_walk($array, function($row) {
echo array_shift($row) , " : " , min($row) , "\n";
});
1 : 4
2 : 13