簡體   English   中英

PHP:如何獲取多維數組的最小值和最大值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM