【问题标题】:PHP JSON match the specificationPHP JSON 匹配规范
【发布时间】:2018-08-29 16:10:43
【问题描述】:

我有一个简短的问题。

我有以下 JSON 数组:

[{"id":"3fdb3ff4-7e57-ebf3628ead59","alias":"myalias1"},{"id":"f5e2fbd0-8dca-88b0555ab8d3","alias":"secondalias"}]

现在我想将 id 保存在 php 变量中,但“alias”必须匹配“myalias1”。

例如if ( $alias == "myalias1" ) { echo $idofmyalias1; }

希望你能帮助我。

问候:)

【问题讨论】:

  • 使用array_column() 制作别名→id 映射。

标签: php arrays json where decode


【解决方案1】:

您将使用 json_decode 解码 JSON 文字,然后在解码后的数组中获取项目的属性值。

这是一个简单的例子:

$literal = '[{"id":"3fdb3ff4-7e57-ebf3628ead59","alias":"myalias1"},{"id":"f5e2fbd0-8dca-88b0555ab8d3","alias":"secondalias"}]';
$parsed_literal = json_decode($literal);

if ($parsed_literal[0]->alias === 'myalias1') {
    echo $parsed_literal[0]->alias;
}

小提琴:Live Demo

【讨论】:

  • 我将您的 if 子句更改为: foreach ($parsed_literal as $i => $value) { if ( $value->alias === "myalias" ) { echo $value->id; } } 这样,每个别名都会被检查,而不仅仅是 [0] 一个。 :)