3 回答
TA贡献1829条经验 获得超6个赞
要通过数组项目的属性找出数组的索引,请使用Array_column仅获取该列/属性的值,然后使用Array_search查找索引。
<?php
$inputZip = 35004;
$index = array_search($inputZip, array_column($zipCodes, 'zipcode')); // 0
print_r($zipCodes[$index]); // the entire object
TA贡献1865条经验 获得超7个赞
要获取由于必须使用的某些参数而过滤的数组的键,您可以array_keys使用array_filter。
例如
$array = [1,2,1,1,1,2,2,1,2,1];
$out = array_filter($array,function($v) {
return $v == 2;
});
print_r(array_keys($out));
输出
Array
(
[0] => 1
[1] => 5
[2] => 6
[3] => 8
)
在PHP沙箱中尝试以上示例
匹配您的实际数据结构。
$json = '[{"zipcode": 35004,"state abbreviation": "AL","latitude": 33.606379,"longitude": -86.50249,"city": "Moody","state": "Alabama"},{"zipcode": 35004,"state abbreviation": "AL","latitude": 33.606379,"longitude": -86.50249,"city": "Moody","state": "Alabama"},{"zipcode": 35005,"state abbreviation": "AL","latitude": 33.606579,"longitude": -86.50649,"city": "Moody","state": "Alabama"}]';
$array = json_decode($json);
$out = array_filter($array, function($v) use ($inputZip) {
return $v->zipcode == $inputZip; // for the below output $inputZip=35004
});
print_r(array_keys($out));
输出
Array
(
[0] => 0
[1] => 1
)
在PHP沙箱中尝试示例
TA贡献1875条经验 获得超5个赞
根据您的代码:
foreach ($zipCodes as $index => $location) { // index is a key
if ($inputZip == $location->zipcode) {
echo "Index is ".$index;
break;
}
}
var_dump($zipCodes[$index]);
我应该注意,看来您在做错了什么,因为您不想像这样存储数据并一直循环循环。
- 3 回答
- 0 关注
- 109 浏览
添加回答
举报