为了账号安全,请及时绑定邮箱和手机立即绑定

如何在具有特定值的多维数组中查找值?

如何在具有特定值的多维数组中查找值?

PHP
跃然一笑 2021-12-03 18:51:45
我有一个看起来像这样的数组:Array(    [2019] => Array        (            [2019] => Array                (                    [year] => 2019                    [amount] => 3269.93                    [type] => charge                )        )    [2018] => Array        (            [2018] => Array                (                    [year] => 2018                    [amount] => 219.25                    [type] => payout                )        )    [2017] => Array        (            [2017] => Array                (                    [year] => 2017                    [amount] => 214.06                    [type] => charge                )        ))我尝试使用array_search()但我认为它无法完成我想要的。根据手册,array_search()用于搜索数组中的特定值,如果找到该值,则返回其对应的键。这考虑到我们知道我们要查找的值是什么并且我们想要返回密钥。我想反过来做。我知道密钥但我不知道值,我想返回值而不是密钥。我正在尝试"select amount where year='2017'"使用数组执行类似于 MYSQL的操作。我怎样才能做到这一点?任何的想法?
查看完整描述

2 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

您可以使用 array_filter


array_filter($array,function ($v){

    return current($v)["amount"] == 3269.93;

});


查看完整回答
反对 回复 2021-12-03
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

我使用嵌套的 foreach 解决了我的问题。我确信有更聪明的方法来实现最终结果,但对我有用。


大批


$data_array='Array

(

    [2019] => Array

        (

            [2019] => Array

                (

                    [year] => 2019

                    [amount] => 3269.93

                    [type] => charge

                )


        )


    [2018] => Array

        (

            [2018] => Array

                (

                    [year] => 2018

                    [amount] => 219.25

                    [type] => payout

                )


        )


    [2017] => Array

        (

            [2017] => Array

                (

                    [year] => 2017

                    [amount] => 214.06

                    [type] => charge

                )


        )


)';

每个人的最终结果


    foreach ($data_array as $key => $data_value) { 

    foreach ($data_value as $key => $value) { 


    $sales_year = $value['year'];

    $current_period = date('Y');


    if($sales_year !=$current_period){


     $current_sales_year = $sales_year+1;


    echo 'Previous Year : '.$sales_year

    echo  '<br>';


    echo 'Previous Sales : $'.$value['amount'];

    echo  '<br>';


    echo 'Current Year : '.$current_sales_year

    echo  '<br>';


//THIS FINDS THE AMOUNT(VALUE) OF THE KNOWN YEAR(KEY)

    echo 'Current Sales : $'$data_array[$current_sales_year][$current_sales_year]['amount'];

    echo  '<br>';


    }



    }

    }


查看完整回答
反对 回复 2021-12-03
  • 2 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信