我得到了第一个(Main)数组,如下所示:
$groceritems = array(
"apple" => array(
"price"=>"10",
"origin"=>array("australia","belgium","USA","canada"),
"breed"=>array("gala","fuji","Honeycrisp","washington"),),
"orange" => array(
"price"=>"10",
"origin"=>array("australia","belgium","USA","canada"),
"breed"=>array("gala","fuji","Honeycrisp","washington"),
),
);
foreach ($groceritems as $key => $value) {
$origins = $value['origin'];
$breeds= $value['breed'];
foreach (array_combine($origins, $breeds) as $origin=>$breed) {
echo $breed ." ".$key." from ". $origin ." price is RM ". $value['price'];
echo "<br>";
}
}第二个数组如下所示,
$grocer= array(
"apple" => array( "country"=>"australia",
"newprice"=>"50",
"breed"=>"gala"),
"orange" => array("country"=>"belgium",
"newprice"=>"30",
"breed"=>"gala"),
);我可以循环第一个数组,但如何将第一个数组的价格(在foreach循环中)替换为包含类别(橙色/苹果)、国家和品种匹配的第二个数组的新价格?就像下面的结果,
澳洲嘎拉苹果售价50马币
比利时富士苹果售价10马币
来自美国的蜜脆苹果售价10马币
来自加拿大的华盛顿苹果价格为10马币。
澳大利亚的gala橙子价格是10马币。
比利时产的富士橙子10马币。
来自美国的蜜糖橙售价10马币。
来自加拿大的华盛顿橙子的价格是10马币。
发布于 2017-08-26 14:29:36
要获得所需的结果,请执行以下操作
$groceritems = array(
"apple" => array(
"price"=>"10",
"origin"=>array("australia","belgium","USA","canada"),
"breed"=>array("gala","fuji","Honeycrisp","washington"),),
"orange" => array(
"price"=>"10",
"origin"=>array("australia","belgium","USA","canada"),
"breed"=>array("gala","fuji","Honeycrisp","washington"),
),
);
$grocer= array(
"apple" => array( "country"=>"australia",
"newprice"=>"50",
"breed"=>"gala"),
"orange" => array("country"=>"belgium",
"newprice"=>"30",
"breed"=>"gala"),
);
foreach ($groceritems as $key => $value) {
$origins = $value['origin'];
$breeds= $value['breed'];
foreach (array_combine($origins, $breeds) as $origin=>$breed) {
if(isset($grocer[$key]) && $origin == $grocer[$key]['country'] && $breed == $grocer[$key]['breed'] ){
$price = $grocer[$key]['newprice'];
} else {
$price = $value['price'];
}
echo $breed ." ".$key." from ". $origin ." price is RM ". $price;
echo "<br>";
}
}https://stackoverflow.com/questions/45892415
复制相似问题