Hướng dẫn get max value from multidimensional array in php - nhận giá trị tối đa từ mảng đa chiều trong php

Tôi biết câu hỏi này đã cũ, nhưng tôi đang cung cấp câu trả lời sau để trả lời một câu hỏi khác đã chỉ ở đây sau khi được đánh dấu là một bản sao. Đây là một giải pháp thay thế khác mà tôi không thấy được đề cập trong các câu trả lời hiện tại.

Tôi biết có một hàm gọi là Max nhưng điều đó không hoạt động với một mảng đa chiều như thế này.

Bạn có thể hiểu được điều đó với array_column giúp nhận được giá trị tối đa rất dễ dàng:

$arr = [['message_id' => 1,
             'points' => 3],
        ['message_id' => 2,
             'points' => 2],
        ['message_id' => 3,
             'points' => 2]];

// max value
$max = max(array_column($arr, 'points'));

Nhận khóa kết hợp là nơi nó khó khăn hơn một chút, xem xét rằng bạn thực sự có thể muốn nhiều khóa (nếu $max khớp với nhiều hơn một giá trị). Bạn có thể làm điều này với một hàm ẩn danh bên trong array_map và sử dụng

// keys of max value
$keys = array_filter(array_map(function ($arr) use ($max) {
    return $arr['points'] == $max ? $arr['message_id'] : null;
}, $arr));
0 để xóa các giá trị
// keys of max value
$keys = array_filter(array_map(function ($arr) use ($max) {
    return $arr['points'] == $max ? $arr['message_id'] : null;
}, $arr));
1:

// keys of max value
$keys = array_filter(array_map(function ($arr) use ($max) {
    return $arr['points'] == $max ? $arr['message_id'] : null;
}, $arr));

Output:

array(1) {
  [0]=>
  int(1)
}

Nếu bạn kết thúc với các khóa bội số nhưng chỉ quan tâm đến trận đấu đầu tiên được tìm thấy, thì chỉ cần tham khảo

// keys of max value
$keys = array_filter(array_map(function ($arr) use ($max) {
    return $arr['points'] == $max ? $arr['message_id'] : null;
}, $arr));
2.

Cách nhận giá trị cao nhất từ ​​mảng đa chiều

Nhận mảng đa chiều có giá trị cao nhất bằng cách sử dụng foreach

$val1)
	{
		if ($val1 > $b)
	 	{
        $b = $val1;
    	}
	}   	
}
echo $b;
?>

Nhận mảng đa chiều có giá trị cao nhất bằng cách sử dụng cho vòng lặp

 $b)
	 	{
        $b = $arr[$i][$j];
    	}
	}   	
}
echo $b;
?>

Hướng dẫn get max value from multidimensional array in php - nhận giá trị tối đa từ mảng đa chiều trong php

PHP nhận hoặc tìm giá trị cao nhất hoặc tối đa trong một mảng đa chiều. Trong hướng dẫn này, bạn sẽ học cách có được giá trị tối đa hoặc cao nhất từ ​​mảng đa chiều trong PHP.

Bạn cũng nên đọc các bài đăng mảng này trong PHP:

  • Php so sánh hai khóa và giá trị của mảng
  • PHP loại bỏ phần tử khỏi mảng
  • PHP loại bỏ các bản sao khỏi mảng

Hướng dẫn này cho bạn thấy hai cách dễ dàng để tìm giá trị cao nhất hoặc tối đa từ mảng đa chiều trong PHP.

1. PHP nhận được giá trị cao nhất trong mảng đa chiều

Hãy cùng lấy ví dụ đầu tiên, để có được giá trị cao nhất trong mảng đa chiều bằng cách sử dụng vòng lặp foreach trong PHP.

$val1)
	{
		if ($val1 > $max)
	 	{
        $max = $val1;
    	}
	}   	
}
print ($max);
?>

Đầu ra của mã trên là: 784

2. Php tìm tối đa/giá trị lớn nhất trong mảng đa chiều

Hãy cùng lấy ví dụ thứ hai, để có được giá trị cao nhất trong mảng đa chiều sử dụng cho vòng lặp trong PHP.

 $max)
	 	{
        $max = $array[$i][$j];
    	}
	}   	
}
print $max;
?>

Đầu ra của mã trên là: 7840

Tên tôi là Devendra Dode. Tôi là một nhà phát triển, doanh nhân và chủ sở hữu của Tutsmake.com. Tôi thích viết hướng dẫn và lời khuyên có thể giúp các nhà phát triển khác. Tôi chia sẻ các hướng dẫn của PHP, Python, JavaScript, JQuery, Laravel, LiveWire, Codeigniter, Node JS, Express JS, Vue JS, Angular JS, React JS, MySQL, MongoDB, Apis REST, Windows , Nhà soạn nhạc, SEO, WordPress, SSL và Bootstrap từ giai đoạn bắt đầu. Cũng như ví dụ demo.

Xem tất cả các bài viết của admin