Maison > Questions et réponses > le corps du texte
Comment calculer la valeur maximale et la valeur minimale d'un tel tableau
Vous pouvez voir en un coup d'œil que la valeur minimale est 0 et la valeur maximale est 459, mais comment la calculer en utilisant php ?
高洛峰2017-05-18 10:48:03
1. Convertissez-le en un tableau unidimensionnel et utilisez min et max pour trouver respectivement le minimum et le maximum
function getMaxAndMin($items){
$newItems=[];
$cutStr=',';//要分割的字符
foreach($items as $item)
{
//保证是String并且包含','
if(is_string($item) && strpos($item,$cutStr)!==false)
{
list($t1,$t2)=explode(',',$item)
$newItems[]=$t1;
$newItems[]=$t2;
}else{
$newItems[]=$item;
}
}
return [min($newItems),max($newItems)];
}
$exampleArr=[
'0,129',
'130,249',
'250,459'
];
list($min,$max)=getMaxAndMin($exampleArr);
Ajoutez un plan en bas, ce qui est plus simple
@jacoob_w
function getMaxAndMin($items,$operator=',')
{
$data = explode($operator, join($operator,$data));
return [min($data),max($data)];
}
伊谢尔伦2017-05-18 10:48:03
<?php
define('CLI_SCRIPT', true);
$example = array(
'0, 129',
'130, 249',
'250, 459'
);
$new_arr = [];
foreach ($example as $item) {
$new_items = explode(',', $item);
$new_arr = array_merge($new_arr, $new_items);
}
var_dump($new_arr);
sort($new_arr, SORT_NUMERIC); //排序
$min = array_shift($new_arr); //最小值
$max = array_pop($new_arr); //最大值
var_dump($min);
var_dump($max);
仅有的幸福2017-05-18 10:48:03
1. Vous pouvez implémenter l'algorithme manuellement, mais les performances peuvent être imaginées
2 Il est recommandé d'utiliser les fonctions intégrées de PHP : http://php.net/manual/zh/func...
世界只因有你2017-05-18 10:48:03
$arr = array(
'0,129',
'130,249',
'250,459',
);
$mix = intval($arr[0]);
$max = explode(',', end($arr))[1];
Utiliser en fonction de la situation réelle
Parce que j'ai vu que l'interrogateur avait d'autres problèmes, j'ai décidé que sa structure de données est comme ceci, et la taille augmente de haut en bas
我想大声告诉你2017-05-18 10:48:03
J'ai adopté la réponse si rapidement. J'estime personnellement que la solution que j'ai adoptée n'est pas la meilleure.
$data = array(
'0,129',
'130,249',
'380,22'
);
$dataArr = explode(',', join(',',$data));
echo "max:".max($dataArr)."<br/>";
echo "min:".min($dataArr);
phpcn_u15822017-05-18 10:48:03
$data = ['0,129','130,249','250,459'];
$str=implode(',',$data);
$arr=explode(',',$str);
var_dump(max($arr));
var_dump(min($arr));