来自数组的Foreach数据列表-递增数字

时间:2018-10-05 00:50:57

标签: php arrays json rest api

我正在尝试从JSON解码的API链接创建选项列表。 到目前为止,我可以访问已排序的API,所有需要存储的数据都存储在单个变量中,并且可以使用

从变量中提取数据
 print_r($result[0]["ORGANISATION_NAME"]);

 print_r($result[1]["ORGANISATION_NAME"]);

这将从数组中为我提供两个不同的组织名称。

我想做的是将其放在按字母顺序排列的下拉菜单中,但是由于某种原因,我无法为自己的一生而努力。我们需要做的就是将0、1、2、3等增加到存储在数据库中的记录数。

我不知道该怎么做!

2 个答案:

答案 0 :(得分:0)

按照要求回答您的问题:

foreach ($results as $result) {
    for ($i = 0; $i < count($result); $i++) {
        print_r($result[$i]["ORGANISATION_NAME"]);
    }
}

但是,为什么不只是另一个foreach

编辑:

根据新信息进行更新:

假设$result是您的数据库结果,这是您的新代码:

foreach ($result as $row) {
    print_r($row['ORGANISATION_NAME']);
}

答案 1 :(得分:0)

我认为一些明智的数据准备步骤将帮助您简化此任务。

  1. 隔离所需的数据列,并创建一个新的一维组织名称数组。
  2. 按字母顺序对名称进行排序。

然后,您可以使用简单的foreach循环来生成html选择字段。

代码(Demo

$result = [
    ["ORGANISATION_NAME" => "B Name"],
    ["ORGANISATION_NAME" => "D Name"],
    ["ORGANISATION_NAME" => "C Name"],
    ["ORGANISATION_NAME" => "A Name"]
];

echo "Proof of correct structure: {$result[1]["ORGANISATION_NAME"]}\n";

$org_names = array_column($result, "ORGANISATION_NAME");

sort($org_names);

var_export($org_names);  // display alphabetized array

echo "\n---\n";

echo "<select name=\"orgs\">";
foreach ($org_names as $org) {
    echo "<option>$org</option>";
}
echo "</select>";

输出:

Proof of correct structure: D Name
array (
  0 => 'A Name',
  1 => 'B Name',
  2 => 'C Name',
  3 => 'D Name',
)
---
<select name="orgs">
    <option>A Name</option>
    <option>B Name</option>
    <option>C Name</option>
    <option>D Name</option>
</select>