猿问

设置 php 变量只包含选定的数组

我有这些数组,但我希望它只为“手表”类别回显数组,并希望将选定的数组存储在 PHP 变量中,我必须尝试在网上搜索以找到解决方案,但没有成功。


$arr = [

    'status' => 1,

    'msg' => [

            'total_records' => 5,

            'total_pages' => 1,

            'page_number' => 1,

            'per_page' => 100,

            'return_count' => 5,

            'page_result' => [


                    0 => array

                        (

                            'items' => 200052001,

                            'code' => 501,

                            'category' => 'watch',

                            'price' => 50,

                            'stock' => 1,

                        ),


                    1 => array

                        (

                            'items' => 200052001,

                            'code' => 401,

                            'category' => 'shirt',

                            'price' =>3,

                            'stock' => 1,

                        ),


                    2 => array

                        (

                            'items' => 200052001,

                            'code' => 172758801,

                            'category' => 'watch',

                            'price' => 200,

                            'stock' => 1,

                        ),


                ],


        ],


    'errcode' => 0,

];


陪伴而非守候
浏览 133回答 2
2回答

梵蒂冈之花

这应该可以解决问题。$watch_array = array();foreach($arr["msg"]["page_result"] AS $k => $item) {    if($item["category"] == "watch") {        $watch_array[] = $item;    }}你现在有一个只包含手表的数组。要显示其内容,请使用:print_r($watch_array);

慕的地8271018

根据您的要求检查此搜索功能。它完全动态以及递归性质。function search($array, $key, $value){    $results = [];    if (is_array($array)) {        if (isset($array[$key]) && $array[$key] == $value) {            $results[] = $array;        }        foreach ($array as $subarray) {            $results = array_merge($results, search($subarray, $key, $value));        }    }    return $results;}$temp = search($arr, "category", "watch");
随时随地看视频慕课网APP
我要回答