在PHP中获取多维数组中的较低值

ohtdti5x  于 2022-12-10  发布在  PHP
关注(0)|答案(3)|浏览(128)

我有数组A:

我有和输入文本,在这种情况下输入值是level,例如它是5。,结果必须是2。我想从输入文本值中找到数组A中的低层。我不知道如何在PHP中进入。帮帮我,谢谢

j8ag8udp

j8ag8udp1#

遍历$arrayA的所有数组

foreach($arrayA as $array)
{
   // Check each array has level value 2 or not 
   if ($array['level'] == 2)
   {
       // found value
       echo "found the array";
   }
}
o0lyfsai

o0lyfsai2#

要获取具有特定级别2数组,可以使用array_filter(),如下所示:

$result = array_filter($arrayA, function($k) {
    return $k['level'] == 2;
});
print_r($result);

为了使其成为动态的,要获取parent_ohp_id为空的最低级别,请使用,

$result = array_filter($arrayA, function($k) {
    return $k['parent_ohp_id'] == "";// this is the root level because it has no parent id
});
print_r($result);
busg9geu

busg9geu3#

一种方法是使用usort()函数按level键对表进行排序,然后获取数组的第一个元素:

<?php

  $array = [
    [
      'john' => 'Snow',
      'level' => 5,
    ],
    [
      'john' => 'Cena',
      'level' => 8,
    ],
    [
      'john' => 'Kennedy',
      'level' => 2,
    ],
    [
      'john' => 'Glenn',
      'level' => 12,
    ],
  ];

  usort($array, function ($a, $b) {
    return $a['level'] - $b['level'];
  });

  echo current($array)['john']; // This will display "Kennedy".

另一种方法是使用foreach循环,并将level值与前一次迭代进行比较:

$lowest = $array[0];

  foreach ($array as $item) {
    if ($item['level'] < $lowest['level']) {
      $lowest = $item;
    }
  }

  echo $lowest['john']; // This will also display "Kennedy".

相关问题