Php 在多维数组中搜索并返回不带支持变量的结果

Php 在多维数组中搜索并返回不带支持变量的结果,php,arrays,loops,multidimensional-array,Php,Arrays,Loops,Multidimensional Array,我有两个数组: $fruits = array( 'Apple' => array('id' => 1), 'Banana' => array('id' => 2), 'Peach' => array('id' => 3) ); $carts = array( 'Olivia' => array(51, 3, 2), 'Harry' => array(312, 314, 10), 'Charlie'

我有两个数组:

$fruits = array(
    'Apple' => array('id' => 1),
    'Banana' => array('id' => 2),
    'Peach' => array('id' => 3)
);
$carts = array(
    'Olivia' => array(51, 3, 2),
    'Harry' => array(312, 314, 10),
    'Charlie' => array(1, 314, 626)
);
我想写一些东西,如果一些水果id在购物车里。我有这个代码,它的工作

foreach ($carts as $cart) {
    $boughtFruit = false;
    foreach ($fruits as $fruit) {
        if (in_array($fruit['id'], $cart)) {
            echo "Fruit <br>";
            $boughtFruit = true;
            break;
        }
    }
    if(!$boughtFruit){
        echo "No Fruit <br>";
    } 
}
我不喜欢我的解决方案,因为我需要使用支持变量
$boughtFruit
和2 foreach


您可以建议我使用
PHP
函数(如果存在)而不使用
$boughtFruit
,使用相同的代码吗?

您不需要内环,而是使用在数组中查找相同的值

$fru = array_column($fruits, "id");
foreach ($carts as $cart) {
    echo count(array_intersect($cart, $fru)) ? "Fruit <br>" : "No Fruit <br>";
}
输出:

Fruit (Peach, Banana)
No Fruit 
Fruit (Apple)

中检查结果,您不需要使用内部循环,而是使用在数组中查找相同的值

$fru = array_column($fruits, "id");
foreach ($carts as $cart) {
    echo count(array_intersect($cart, $fru)) ? "Fruit <br>" : "No Fruit <br>";
}
输出:

Fruit (Peach, Banana)
No Fruit 
Fruit (Apple)
检查结果