Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数组中缓存json数据并引用ID来填充类型_Php_Arrays_Json_Session_Caching - Fatal编程技术网

Php 在数组中缓存json数据并引用ID来填充类型

Php 在数组中缓存json数据并引用ID来填充类型,php,arrays,json,session,caching,Php,Arrays,Json,Session,Caching,我的函数以json格式返回一组属性ID及其对应的名称。例如: { "DETAILS": [ { "ATTR_ID": "522", "ATTRIBUTE_ID": "4222", "ATTRIBUTE_TYPE": "email", }, { "ATTR_ID": "523", "ATTRIBUTE_ID": "4006

我的函数以json格式返回一组属性ID及其对应的名称。例如:

{
    "DETAILS": [
        {
            "ATTR_ID": "522",
            "ATTRIBUTE_ID": "4222",
            "ATTRIBUTE_TYPE": "email",

        },
        {
            "ATTR_ID": "523",
            "ATTRIBUTE_ID": "4006",
            "ATTRIBUTE_TYPE": "interest",


        }
    ]
}
我需要将其存储在需要缓存的数组中。(我可能会使用$\u会话)

现在,另一个函数返回一组属性ID:

 $val_array = $subarray[arrayOfAttributes];
    foreach ($val_array as $val)
    {
        print "Attrib Value: $val\n"; //This will print ids 4222,4223,etc
    }
what I need to do is correspond the ids with the type from the cache nad print out the respective Types.
我无法将此逻辑表述为代码

function getAttrType($id, $array){
  // $array is your 'DETAILS' array.
  foreach($array as $a){
    if($a['ATTR_ID'] == $id){
      return $a['ATTRIBUTE_TYPE'];
    }
  }
}

print getAttrType(523, $array); // will output 'interest'
print getAttrType(522, $array); // will output 'email'
print getAttrType(123, $array); // will output nothing
不知道这是不是你想要的,也许这能帮你找到正确的方向


不知道这是否是您正在寻找的,也许这可以让您走上正确的方向。

要只存储在$u会话中,您可以总是先序列化(json_decode())它,然后在需要时取消序列化(json_encode())。要只存储在$u会话中,您可以总是先序列化(json_decode())它,然后取消序列化(json_encode())当你需要它的时候就可以。