[英]PHP: How to get the min and max of a Multidimensional Array?
我有以下多維數組。
$dog_treats=array(
array(
'Rupert' = array(
'Breed' => 'German Shepherd',
'treats' = array(
0 => 3,
1 => 2,
2 => 6
),
),
'Zeus' = array(
'Breed' => 'Golden Retreiver',
'treats' = array(
0 => 5,
1 => 4,
2 => 1,
3 => 2
),
),
),
);
語法有點不對,但這就是它的樣子。 創建它的代碼是:
$dog_treats['Rupert']['Breed'] = 'German Shepherd';
$dog_treats['Rupert']['treats'][0] = 3;
$dog_treats['Rupert']['treats'][1] = 2;
$dog_treats['Rupert']['treats'][2] = 6;
$dog_treats['Zeus']['Breed'] = 'Golden Retreiver';
$dog_treats['Zeus']['treats'][0] = 5;
$dog_treats['Zeus']['treats'][1] = 4;
$dog_treats['Zeus']['treats'][2] = 1;
$dog_treats['Zeus']['treats'][3] = 2;
對於每只狗,我想獲得它們當天吃的最大和最小數量。 我該怎么做呢? 謝謝
魯伯特最大 = 6 分鍾 = 2
宙斯最大值 = 5 分鍾 = 1
基本上:
foreach ($dog_treats as $k=>$v){
echo $k.'<br>';
echo "max: ". max($dog_treats[$k]['treats']).'<br>';
echo "min: ". min($dog_treats[$k]['treats']).'<br>';
}
演示: http : //codepad.viper-7.com/BGeMGx
或者
foreach ($dog_treats as $k=>$v){
echo $k.'<br>';
echo "max: ". max($v['treats']).'<br>';
echo "min: ". min($v['treats']).'<br>';
}
如果您想在數組中存儲最小/最大零食,您可以使用 array_walk 並應用這些值:
array_walk($dogs, function(&$dog) {
$dog['min'] = min($dog['treats']);
$dog['max'] = max($dog['treats']);
});
如果您只想打印最小值/最大值,則可以使用 foreach 循環並簡單地回顯:
echo 'min: ' . min($dog['treats']);
如果要立即定義數組,則可以使用以下代碼:
$dog_treats = array(
array(
'Rupert' => array(
'Breed' => 'German Shepherd',
'treats' => array(
0 => 3,
1 => 2,
2 => 6
),
),
'Zeus' => array(
'Breed' => 'Golden Retreiver',
'treats' => array(
0 => 5,
1 => 4,
2 => 1,
3 => 2
),
),
),
);
foreach($dog_treats as $key) {
foreach($key as $dog => $value) {
echo 'Dog: '.$dog.', Max: '.max($value['treats']).', Min: '.min($value['treats']).'<br />';
}
}
結果:
Dog: Rupert, Max: 6, Min: 2
Dog: Zeus, Max: 5, Min: 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.