如何从下面给出的数组中获取所有ID的列表,
$filteredZips=[{
"id": 21,
"distance": "0"
},
{
"id": 20,
"distance": "3.9399923305414037"
},
{
"id": 29,
"distance": "8.33045537474091"
}]
预期结果将是:
$id = array('21','20','29');
答案 0 :(得分:1)
有一个名为array_column的函数可以获取数组中的一列 首先,需要将字符串转换为具有Json_decode且第二个参数为true的数组。
然后array_column返回您的预期输出。
不需要循环。
$filteredZips='[{
"id": 21,
"distance": "0"},{
"id": 20,
"distance": "3.9399923305414037"},{
"id": 29,
"distance": "8.33045537474091"}]';
$filteredZipsarr = json_decode($filteredZips,true);
$id = array_column($filteredZipsarr, "id");
Var_dump($id);
如果您不需要$filteredZipsarr
,可以将其作为一个班轮:
$id = array_column(json_decode($filteredZips,true), "id");
答案 1 :(得分:0)
使用array_map
功能:
$id = array_map(function($value){
return $value['id'];
}, $filteredZips);
答案 2 :(得分:0)
首先,您需要解码JSON字符串以将其作为对象数组访问:
$filteredZips = json_decode($filteredZips);
$results = array();
foreach ($filteredZips as $zip) {
$results[] = $zip->id;
}
print_r($results);
答案 3 :(得分:0)
使用array_column
json_decode
$ids = array_column(json_decode($filteredZips, true), 'id');
Array
(
[0] => 21
[1] => 20
[2] => 29
)
答案 4 :(得分:-1)
解决方案:
$answer = [];
foreach($filteredZips as $array){
if(isset($array['id'])){
$answer[]=$array['id'];
}
}
var_dump($answer);
答案 5 :(得分:-1)
试试这个:
$ids = array();
foreach ($filteredZips as $zip) {
$ids[] = $zip["id"];
}
var_dump($ids);
别忘了使用json_decode函数来获取正确的php数组。