在同一数组中查找数组中的键和 return 值
Finding key in array and return value in the same array
我有一个数组:
"city": [
{
"kind": "qpxexpress#cityData",
"code": "CHI",
"name": "Chicago"
},
{
"kind": "qpxexpress#cityData",
"code": "LAX",
"name": "Los Angeles"
},
{
"kind": "qpxexpress#cityData",
"code": "YMQ",
"name": "Montreal"
},
{
"kind": "qpxexpress#cityData",
"code": "YOW",
"name": "Ottawa"
},
{
"kind": "qpxexpress#cityData",
"code": "YVR",
"name": "Vancouver"
}
]
完整路径为:array->trips->data->city
我想要做的是从数组中获取 "name",如果 "code" 与提供的代码匹配:
function getCity($string, $array) {
foreach ($array as $place) {
if (strstr($string, $place)) { // mine version
echo "Match found";
return true;
}
}
echo "Not found!";
return false;
}
这就是我得到的全部。我不知道如何继续。
你的"array"确实是一个数组,但是在JSON, and not a PHP-Array中。因此,您必须先对其进行解码:
$json = '[
{
"kind": "qpxexpress#cityData",
"code": "YOW",
"name": "Ottawa"
},
{
"kind": "qpxexpress#cityData",
"code": "YVR",
"name": "Vancouver"
}
]';
$array = json_decode($json, true);
请注意,您代码中的 "city":
前缀可能是 JSON 内部周围对象的遗留物(我还删除了一些条目,因为并非所有条目都是需要说明我的观点)。因此,为了仅解码必须删除的数组。
然后您可以像以前一样遍历数组:
function getNameByCodeFromArray($array, $code) {
foreach ($array as $entry) {
if ($entry['code'] == $code) {
return $entry['name'];
}
}
}
然后调用函数:
echo getNameByCodeFromArray($array, 'YVR'); // Echoes "Vancouver"
我有一个数组:
"city": [
{
"kind": "qpxexpress#cityData",
"code": "CHI",
"name": "Chicago"
},
{
"kind": "qpxexpress#cityData",
"code": "LAX",
"name": "Los Angeles"
},
{
"kind": "qpxexpress#cityData",
"code": "YMQ",
"name": "Montreal"
},
{
"kind": "qpxexpress#cityData",
"code": "YOW",
"name": "Ottawa"
},
{
"kind": "qpxexpress#cityData",
"code": "YVR",
"name": "Vancouver"
}
]
完整路径为:array->trips->data->city 我想要做的是从数组中获取 "name",如果 "code" 与提供的代码匹配:
function getCity($string, $array) {
foreach ($array as $place) {
if (strstr($string, $place)) { // mine version
echo "Match found";
return true;
}
}
echo "Not found!";
return false;
}
这就是我得到的全部。我不知道如何继续。
你的"array"确实是一个数组,但是在JSON, and not a PHP-Array中。因此,您必须先对其进行解码:
$json = '[
{
"kind": "qpxexpress#cityData",
"code": "YOW",
"name": "Ottawa"
},
{
"kind": "qpxexpress#cityData",
"code": "YVR",
"name": "Vancouver"
}
]';
$array = json_decode($json, true);
请注意,您代码中的 "city":
前缀可能是 JSON 内部周围对象的遗留物(我还删除了一些条目,因为并非所有条目都是需要说明我的观点)。因此,为了仅解码必须删除的数组。
然后您可以像以前一样遍历数组:
function getNameByCodeFromArray($array, $code) {
foreach ($array as $entry) {
if ($entry['code'] == $code) {
return $entry['name'];
}
}
}
然后调用函数:
echo getNameByCodeFromArray($array, 'YVR'); // Echoes "Vancouver"