 
			
				06.08.2024, 19:31
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Поиск в многомерном массиве
			 
			
		
		
		
		Здравствуйте! Подскажите пожалуйтса, как можно реализовать поиск наибольшего или наименьшего числа (в зависимости от "category") "quantity" в каждом блоке массива  
{
    "category": {
        "A": [
            {
                "teacher": 27,
                "quantity": 32
                
            },
            {
                "teacher": 31,
                "quantity": 39
            },
            {
                "teacher": 41,
                "quantity": 22
            },
            {
                "teacher": 73,
                "quantity": 15
            }
        ],
        "B": [
            {
                "teacher": 28,
                "quantity": 33
                
            },
            {
                "teacher": 46,
                "quantity": 23
            },
            {
                "teacher": 34,
                "quantity": 22
            },
            {
                "teacher": 131,
                "quantity": 319
            }
        ],
        "C": [
            {
                "teacher": 72,
                "quantity": 139
                
            },
            {
                "teacher": 88,
                "quantity": 12
            },
            {
                "teacher": 83,
                "quantity": 56
            },
            {
                "teacher": 55,
                "quantity": 23
            }
        ],
        "D": [
            {
                "teacher": 11,
                "quantity": 78
                
            },
            {
                "teacher": 34,
                "quantity": 25
            },
            {
                "teacher": 21,
                "quantity": 35
            },
            {
                "teacher": 34,
                "quantity": 26
            }
        ],
        "E": [
            {
                "teacher": 30,
                "quantity": 10
            },
            {
                "teacher": 23,
                "quantity": 99
            },
            {
                "teacher": 67,
                "quantity": 87
            },
            {
                "teacher": 10,
                "quantity": 53
            }
        ]
    }
}
в категории "А" наибольшее число такое-то, в "B" наименьшее число такое-то, в категории "С" - наибольшее, в "D" - наименьшее, в   "E" - наибольшее. 
Для массива с одним блоком, я использую  
foreach($values as $key => $value)
 , а вот когда их несколько не получается. Помогите, пожалуйста.  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.08.2024, 20:58
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ну вложи один в другой, какие проблемы? 
foreach($values as $categoryKey => $categoryValues) {
  foreach($categoryValues as $key => $value) {
    ....
  }
}
 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.08.2024, 21:13
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Пробовала, что-то никак, может, что упустила. Попробую ещё. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.08.2024, 21:18
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 За ответ огромное спасибо! 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.08.2024, 22:29
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<?php
$values = json_decode('{
  "category": {
    "A": [
      {
        "teacher": 27,
        "quantity": 32
        
      },
      {
        "teacher": 31,
        "quantity": 39
      },
      {
        "teacher": 41,
        "quantity": 22
      },
      {
        "teacher": 73,
        "quantity": 15
      }
    ],
    "B": [
      {
        "teacher": 28,
        "quantity": 33
        
      },
      {
        "teacher": 46,
        "quantity": 23
      },
      {
        "teacher": 34,
        "quantity": 22
      },
      {
        "teacher": 131,
        "quantity": 319
      }
    ],
    "C": [
      {
        "teacher": 72,
        "quantity": 139
        
      },
      {
        "teacher": 88,
        "quantity": 12
      },
      {
        "teacher": 83,
        "quantity": 56
      },
      {
        "teacher": 55,
        "quantity": 23
      }
    ],
    "D": [
      {
        "teacher": 11,
        "quantity": 78
        
      },
      {
        "teacher": 34,
        "quantity": 25
      },
      {
        "teacher": 21,
        "quantity": 35
      },
      {
        "teacher": 34,
        "quantity": 26
      }
    ],
    "E": [
      {
        "teacher": 30,
        "quantity": 10
      },
      {
        "teacher": 23,
        "quantity": 99
      },
      {
        "teacher": 67,
        "quantity": 87
      },
      {
        "teacher": 10,
        "quantity": 53
      }
    ]
  }
}', true);
$maxQuantity = [];
foreach($values['category'] as $categoryKey => $categoryValues) {
  $max = 0;
  foreach($categoryValues as $key => $value) {
    if($value['quantity'] > $max) {
      $max = $value['quantity'];
      $maxQuantity[$categoryKey] = $value;
    }
  }
}
echo "В катеогории А победил " . $maxQuantity['A']['teacher'] . " со счётом " . $maxQuantity['A']['quantity'] . ".\n";
var_dump($maxQuantity);
 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Aetae, 06.08.2024 в 22:32.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				06.08.2024, 22:39
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Огромное спасибо! 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.08.2024, 01:13
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Извините за наивность, но если этот массив у меня из array_values, как можно в данном случае использовать json_decode? 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Sonya, 07.08.2024 в 08:03.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.08.2024, 02:49
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Не знаю что за array_values. Так чтоли, лол? 
$values = $array_values; // вместо json_decode
 
Или так?
 
$values = json_decode($array_values, true);
 
Если нет - показывай код.  
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Aetae, 07.08.2024 в 03:29.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.08.2024, 08:21
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Доброе утро. Массив находится в файле, в котором переодически меняются только числа. Поэтому, я его открываю так: $array = file('data.txt'), и дальше $values = array_values($array); 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Sonya, 07.08.2024 в 08:35.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.08.2024, 08:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Сделала так:  
$values = json_decode(file_get_contents('data.txt'), true);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |