获取php中json元素的计数

时间:2018-08-16 16:37:47

标签: php json element

我的json是这样的:

{
"id1527":{"stats":"true"},
"id6376373":{"stats":"true"},
"id63737":{"stats":"true"}
}

如何获取所有ID的计数(例如'id1527'或'id6376373'...)

3 个答案:

答案 0 :(得分:2)

在解析JSON之后,array_filter()会将其过滤为仅以id开头的密钥过滤,然后count()对其进行计数:

count(array_filter(json_decode($json, true), function($key) {
    return substr($key, 0, 2) == "id";
}, ARRAY_FILTER_USE_KEY));

答案 1 :(得分:1)

我希望你是这个意思。

mse_samp1 <- 
  list("mse_A" = list("P10" = data.frame(number = 1:3, mse_1 = c(2.5, 4.6, 7.8), mse_2 = c(6.7, 8.9, 4.1)), 
                      "P30" = data.frame(number = 1:3, mse_1 = c(22.5, 74.6, 97.8), mse_2 = c(56.7, 78.9, 14.1))),
       "mse_B" = list("P10" = data.frame(number = 1:3, mse_1 = c(122.5, 124.6, 127.8), mse_2 = c(126.7, 128.9, 124.1)), 
                      "P30" = data.frame(number = 1:3, mse_1 = c(3422.5, 3474.6, 3497.8), mse_2 = c(3456.7, 3478.9, 3414.1))))

mse_samp2 <- 
  list("mse_A" = list("P70" = data.frame(number = 1:3, mse_1 = c(22.2, 77.6, 97.8), mse_2 = c(26.7, 78.9, 17.1)),
                      "P80" = data.frame(number = 1:3, mse_1 = c(1022.2, 3077.6, 9097.8), mse_2 = c(7626.7, 2278.9, 7317.1))),
       "mse_B" = list("P70" = data.frame(number = 1:3, mse_1 = c(3722.2, 3777.6, 3797.8), mse_2 = c(3726.7, 3778.9, 3717.1)),
                      "P80" = data.frame(number = 1:3, mse_1 = c(1022.2, 3077.6, 9097.8), mse_2 = c(7626.7, 2278.9, 7317.1))))

data_runs_list <- list(run1 = mse_samp1, run2 = mse_samp2)

此代码段检查以查看JSON数组的顶级键是否具有前面的文本“ id”,并且仅考虑这些记录。

答案 2 :(得分:0)

解码为数组并计数元素。

count(json_decode($json, true));