hi i am trying to find min and max values of x and y how can i find this min and max functions is not working correctly
$dataPoints = array(
array(\'x\' =&g
//to find max use rsort() & for min :sort()
//Below will return you the max
$dataPoints = array(
array('x' => 2343, 'y' => 4322),
array('x' => 103, 'y' => 7303 ),
array('x' => 2345,'y' => 2321 ),
array('x' => 310, 'y' => 2044 ),
array('x' => 173, 'y' => 793 ),
array('x' => 456, 'y' => 2675),
array('x' => 24, 'y' => 819 ));
foreach ($dataPoints as $key=>$value) {
$x[$key] = $value['x'];
$y[$key] = $value['y'];
}
rsort($x,SORT_DESC);
rsort($y,SORT_DESC);
echo $x[0];
echo $y[0];
You can use PHP's array_column() (PHP 5 >= 5.5.0) for this:
$min_x = min( array_column( $dataPoints, 'x' ) );
$min_y = min( array_column( $dataPoints, 'y' ) );
$max_x = max( array_column( $dataPoints, 'x' ) );
$max_x = max( array_column( $dataPoints, 'y' ) );
Sample code to built your required answer
foreach($dataPoints[0]['x'] as $x_val)
{
//write max min func for x values
}
foreach($dataPoints[0]['y'] as $y_val)
{
//write max min func for y values
}
You can find individually the minimum and maximum values of each column by combining array_column, min and max functions:
$min_x = min(array_column($dataPoints, 'x'));
$max_x = max(array_column($dataPoints, 'x'));
$min_y = min(array_column($dataPoints, 'y'));
$max_y = max(array_column($dataPoints, 'y'));
I thinik you will have to write your own function:
<?php
function max_with_key($array, $key) {
if (!is_array($array) || count($array) == 0) return false;
$max = $array[0][$key];
foreach($array as $a) {
if($a[$key] > $max) {
$max = $a[$key];
}
}
return $max;
}
$dataPoints = array(
array('x' => 2343, 'y' => 4322),
array('x' => 103, 'y' => 303 ),
array('x' => 2345,'y' => 2321 ),
array('x' => 310, 'y' => 2044 ),
array('x' => 173, 'y' => 793 ),
array('x' => 456, 'y' => 2675),
array('x' => 24, 'y' => 819 ));
$max_x = max_with_key($dataPoints, 'x'); //2343
$max_y = max_with_key($dataPoints, 'y'); //4322
?>
Try something like this:
foreach($dataPoints as $point) {
if (!isset($x) || $point['x'] > $x) {
$x = $point['x'];
}
if (!isset($y) || $point['y'] > $y) {
$y = $point['y'];
}
}