1

我有一个Array,当我打印它时,我得到以下输出;

Array[{"city":"London","school":"st patrick"}]

现在我想读取保存在变量中的项目city并检查它是否London处于以下IF条件;

if ($cityArray['city'] == 'London') {

  echo 'City present';
}

我上面的 if 条件不正确,我没有得到预期的输出。我猜我访问该city项目的方式不正确。

4

2 回答 2

0

这是一个 JSON 字符串,您需要先对其进行解码:

$data = json_decode($json);

然后你可以像这样访问元素:

for ($i = 0; $i < count($data); $i++) {
    $element = $data[$i];
    echo $element->city;
}
于 2012-07-13T09:08:37.000 回答
0

有几件事。您的数组看起来是 JSON 格式。您需要使用 json_decode 进行解码(在修复数组格式之后):

$jsonArray = Array('{"city":"London","school":"st patrick"}'); // User the correct PHP array format: Array() while the inside elements should be quoted if they're strings.
$cityArray = json_decode($jsonArray[0]);

使用正确的变量引用格式:

if ($cityArray->city == 'London') { // $cityArray is an object, so you'll need to use the -> operator to get its "city" property.
    echo 'City present';
}

您尝试访问关联数组的值的方式(通过输入名称以返回值)是正确的,但只需要修复几个格式问题即可。

编辑:添加了数组的索引号以获取 JSON。

于 2012-07-13T09:09:47.420 回答