gpt4 book ai didi

php - 如何使用两个数组使用foreach循环来获取结果

转载 作者:搜寻专家 更新时间:2023-10-31 21:56:49 25 4
gpt4 key购买 nike

我有两个数组如下

[1]=>Array(
[ingrediant]=>Array(
[A]=>Chicken [C]=>TomatoJuice
)
[price]=> 100
)
[2]=>Array(
[ingrediant]=>Array(
[A]=>Pork [C]=>LimeJuice
)
[price]=> 50
)
[3]=>Array(
[ingrediant]=>Array(
[B]=>Chille [C]=>TomatoJuice
)
[price]=>100

)
)

Array([A]=>Array([name]=>meat [code]=>001)
[B]=>Array([name]=>Vegetable [code]=>002)
[C]=>Array([name]=>Juice [code]=>003)
)

第一个数组显示食物组合,第二个数组显示成分类型例如,

Chicken+tomatojuice Combo

鸡肉是肉,番茄汁是果汁。我想按果汁分组得到结果。

>Tomatojuice 
-Meat:Chicken, price:100
-Vegetable:Chille, price:100
>LimeJuice
-Meat:Pork, price:100

如何使用 php foreach 获得这些结果。我试了好几次了。一点都不好。

最佳答案

这段代码应该可以解决你的问题

基于你的数组声明:

$food_combo[] = array(
'ingrediant'=> array(
'A' => 'Chicken',
'C' => 'TomatoJuice'
),
'price'=>100
);
$food_combo[] = array(
'ingrediant'=> array(
'A' => 'Pork',
'C' => 'LimeJuice'
),
'price'=>50
);
$food_combo[] = array(
'ingrediant'=> array(
'B' => 'Chille',
'C' => 'TomatoJuice'
),
'price'=>100
);
$types['A'] = array('name'=>'meat','code'=>'001');
$types['B'] = array('name'=>'vegetable','code'=>'002');
$types['C'] = array('name'=>'juice','code'=>'003');

这是算法:

$group_by = 'C';
$combo = $output = array();

foreach($food_combo as $food){

//array("A","B"....);
$missed = array_diff(
array_keys($food['ingrediant']),
isset($combo[$food['ingrediant'][$group_by]]) ?
$combo[$food['ingrediant'][$group_by]] : array()
);

if(count($missed)){
//remove initial group define as key
foreach(array_diff($missed,array($group_by)) as $type_code)
$output[$food['ingrediant'][$group_by]][] =
$types[$type_code]['name'] .
':' . $food['ingrediant'][$type_code] .
',' . 'price:' . $food['price'];
}
}
print_r($output);

关于php - 如何使用两个数组使用foreach循环来获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com