php从二维数组中删除数组元素,知道2'中的元素名称;仅nd维度

php从二维数组中删除数组元素,知道2'中的元素名称;仅nd维度,php,arrays,Php,Arrays,抱歉,标题可能会让人困惑,但这应该会澄清 我想删除$friers['banana']记录,因为$friers['banana']['shelf_life']已过期 我可以用foreach来查找我正在检查的['shelf_life']值,但是如何找到它属于$fruits['banana']来删除它呢 $fruits=array( 'apple' => array ('shelf_life' => 10), 'banana' => array ('shelf_life' =>

抱歉,标题可能会让人困惑,但这应该会澄清

我想删除$friers['banana']记录,因为$friers['banana']['shelf_life']已过期

我可以用foreach来查找我正在检查的['shelf_life']值,但是如何找到它属于$fruits['banana']来删除它呢

$fruits=array(
'apple' => array ('shelf_life' => 10),
'banana' => array ('shelf_life' => 5),
'orange' => array ('shelf_life' => 7)
)

$shelf_time = 6

// I want to remove expired fruits from array

foreach($fruits as $v1){
    if ($v1['shelf_life']<$shelf_time)
    //remove matching $fruits array record 'banana'... how?
}
你可以用


根据
$shelf\u time
的值对其进行过滤。使用
=
任何您需要的:

$fruits = array_filter($fruits, function($var) use ($shelf_time) {
                                    return $var['shelf_life'] >= $shelf_time;
                                });

麻烦的是发现“苹果”是一个不可见的:)这是一个很好的答案,使用
array\u filter()
,它还将重新索引数组,如果键是numerical@Rizier123:是的,但不是。如果它是数字的,并且需要维护密钥,我有一个更好的答案。;-)
unset($fruits['apple']);
$fruits = array_filter($fruits, function($var) use ($shelf_time) {
                                    return $var['shelf_life'] >= $shelf_time;
                                });