首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在多维数组中搜索值的函数

用于在多维数组中搜索值的函数
EN

Stack Overflow用户
提问于 2017-08-26 14:03:23
回答 1查看 33关注 0票数 0

我得到了第一个(Main)数组,如下所示:

代码语言:javascript
复制
$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>";    

    }


}

第二个数组如下所示,

代码语言:javascript
复制
$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马币。

EN

回答 1

Stack Overflow用户

发布于 2017-08-26 14:29:36

要获得所需的结果,请执行以下操作

代码语言:javascript
复制
$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>";

    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45892415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档