[英]how to get number key value from json php
我想要json數據中的key_value,但不使用循環
$y = "2018";
$json = '[
{"2017":[{"p":"50","v":"55"}]},
{"2018":[{"p":"50","v":"55"}]}
]';
$obj = json_decode($json, true);
if(array_key_exists($y, $obj)){
return $json[$y];
} else {
return array_search($y, $obj);
}
僅返回數字1
我想這是您的預期答案
$y = "2018";
$json = '[
{"2017":[{"p":"50","v":"55"}]},
{"2018":[{"p":"50","v":"55"}]}
]';
$obj = json_decode($json, true);
return array_column($obj,$y);
這將返回如下數組:
Array
(
[0] => Array
(
[0] => Array
(
[p] => 50
[v] => 55
)
)
)
由於解碼時您的json字符串如下所示:
Array
(
[0] => Array
(
[2017] => Array
(
[0] => Array
(
[p] => 50
[v] => 55
)
)
)
[1] => Array
(
[2018] => Array
(
[0] => Array
(
[p] => 50
[v] => 55
)
)
)
)
array_key_exists
查找給定鍵是否存在於給定數組中。 array_search
查找給定值是否出現在給定數組中。
這些功能無法查看多維數組。 您應該遍歷數組,然后執行array_key_exists
和/或array_search
函數。
好的,所以我嘗試不使用循環就完成它,這可能就是您想要的,也可能不是。
$y = "2018";
$json = '[
{"2017":[{"p":"50","v":"55"}]},
{"2018":[{"p":"50","v":"55"}]}
]';
$obj = json_decode($json, true);
function exists( $key, $value, $y )
{
global $result;
if( isset( $key[ $y ] ) )
{
$result = $key[ $y ];
}
}
array_walk( $obj, "exists", $y );
var_dump( $result );
結果:
array(1) {
[0]=>
array(2) {
["p"]=>
string(2) "50"
["v"]=>
string(2) "55"
}
}
$num = array_walk($json, function($a) use ($i) {
$y = "2018";
if(isset($a[$y])){
return $i;
}
$i++;
});
返回1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.