我有一个带有以下格式结构的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);
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
写了一个搜索函数来搜索数组中的水果名称
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);
当函数提供水果名称时,搜索整个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
如何找到数组索引号,因为数组索引的结果在结果中为0,但它在主文件点3中的位置索引为2或至少如何更新匹配的retsult率直接?