【发布时间】:2023-04-03 08:40:01
【问题描述】:
$full_json ='{
"1stelement": {
"2ndelement": {
"elements": [
{
"test1": 383,
"test2": 100
},
{
"test1": 48,
"test2": 5
},
{
"test1": 383,
"test2": 100
},
{
"test1": 48,
"test2": 6
},
{
"test1": 383,
"test2": 100
},
{
"test1": 48,
"test2": 7
},
{
"test1": 383,
"test2": 100
},
{
"test1": 48,
"test2": 8
},
{
"test1": 383,
"test2": 100
},
{
"test1": 48,
"test2": 9
},
{
"test1": 383,
"test2": 100
},
{
"test1": 48,
"test2": 10
}
]
}
}
}';
$full = json_decode($full_json,true);
$test2range = array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
$values=array_keys(array_column($full['1stelement']['2ndelement']['elements'], 'test2'),$test2range ,true);
// $values=array_keys(array_column($full['1stelement']['2ndelement']['elements'], 'test2'),5 ,true); // returns result
var_dump($values);
exit;
我想获得array_keys 返回值以进一步处理。
如果没有 array_keys 函数,我们可以使用 foreach 循环获取值,这是不可取的。
根据array_keys的定义,搜索值参数可以是mixed type,所以我们可以给出值的数组。
当我尝试这样做时,结果总是作为一个空数组给出,这不是预期的结果。
谁能解释一下如何做到这一点?
【问题讨论】:
-
array_keys()仅支持像print_r(array_keys($a,"10",true));这样的单个值 -
OP 似乎知道它支持单值(作为他的例子适用于单值),他的问题是为什么不多
标签: php arrays multidimensional-array