找到php json数组索引号

时间:2014-09-17 22:53:44

标签: php arrays json

我有一个带有以下格式结构的json文件。

[  
 {  
    "name":"banana",
    "type":"fruit",
    "rate":10
 },
 {  
    "name":"orange",
    "type":"fruit",
    "rate":20
 },
 {  
    "name":"apple",
    "type":"fruit",
    "rate":30
 }
]

当我匹配搜索时,我想将水果的比率更新为+1。

1。阅读json文件

 $json_file = file_get_contents('fruits.txt');

2。解码了json文件

 $fruit_list=json_decode($json_file,true);
  1. VarDumping Decoded json文件就像这样

    array (size=3)
      0 => 
        array (size=3)
          'name' => string 'banana' (length=6)
          'type' => string 'fruit' (length=5)
          'rate' => int 10
      1 => 
        array (size=3)
          'name' => string 'orange' (length=6)
          'type' => string 'fruit' (length=5)
          'rate' => int 20
      2 => 
        array (size=3)
          'name' => string 'apple' (length=5)
          'type' => string 'fruit' (length=5)
          'rate' => int 30
    
  2. 写了一个搜索函数来搜索数组中的水果名称

  3. function search_by_key_and_value($array, $key, $value)
    {
        $results = array();
    
        if (is_array($array))
        {
            if (isset($array[$key]) && $array[$key] == $value)
                $results[] = $array;
    
            foreach ($array as $subarray)
                $results = array_merge($results, search_by_key_and_value($subarray, $key, $value));
        }
    
        return $results;
    
    }
    
     $result = search_by_key_and_value($fruit_list,"name",apple);
    
    1. 当函数提供水果名称时,搜索整个json文件并打印RESULT_MATCH var_dump($result)如下所示

          array (size=1)
                0 => 
                  array (size=3)
                    'name' => string 'apple' (length=5)
                    'type' => string 'fruit' (length=5)
                    'rate' => int 30
      
    2. 如何找到数组索引号,因为数组索引的结果在结果中为0,但它在主文件点3中的位置索引为2或至少如何更新匹配的retsult率直接?

0 个答案:

没有答案