php,当数组的某些成员缺少键时获取所有数组键

安德鲁·莱恩

我在数组 ['results'] 中搜索,其中只有该数组的某些成员具有键 'taxonomicStatus'

该数组有 15 个成员:

http://api.gbif.org/v1/species?name=Micromussa%20amakusensis

当我搜索数组时,它返回一个列表,其中包含键为 'taxonomicStatus' 的列表

$taxonomicStatus_search = array_column($taxon['results'], 'taxonomicStatus'); 

Array
(
[0] => HOMOTYPIC_SYNONYM
[1] => ACCEPTED
[2] => SYNONYM
[3] => ACCEPTED
[4] => ACCEPTED
[5] => ACCEPTED
)

预期输出:

Array
(
[0] => HOMOTYPIC_SYNONYM
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] => ACCEPTED
[10] => SYNONYM
[11] => ACCEPTED
[12] => ACCEPTED
[13] => 
[14] => ACCEPTED
)

我试图在这种情况下设置返回第一个键=> 接受 9

萨希尔·古拉蒂

在这里你应该使用foreach循环而不是array_column.

PHP代码演示

<?php
ini_set('display_errors', 1);
$json='{"offset":0,"limit":20,"endOfRecords":true,"results":[{"key":4880483,"nubKey":4880483,"nameKey":7024762,"taxonID":"gbif:4880483","sourceTaxonKey":106044866,"kingdom":"Animalia","phylum":"Cnidaria","order":"Scleractinia","family":"Mussidae","genus":"Acanthastrea","species":"Acanthastrea amakusensis","kingdomKey":1,"phylumKey":43,"classKey":206,"orderKey":714,"familyKey":7002,"genusKey":2260342,"speciesKey":2260347,"datasetKey":"d7dddbf4-2cf0-4f39-9b2a-bb099caae36c","constituentKey":"2d59e5db-57ad-41ff-97d6-11f5fb264527","parentKey":2260342,"parent":"Acanthastrea","acceptedKey":2260347,"accepted":"Acanthastrea amakusensis Veron, 1990","basionymKey":2260347,"basionym":"Acanthastrea amakusensis Veron, 1990","scientificName":"Micromussa amakusensis (Veron, 1990)","canonicalName":"Micromussa amakusensis","authorship":" (Veron, 1990)","nameType":"SCIENTIFIC","rank":"SPECIES","origin":"SOURCE","taxonomicStatus":"HOMOTYPIC_SYNONYM","nomenclaturalStatus":[],"remarks":"Originally found in sources as accepted taxon within Micromussa Veron, 2000","publishedIn":"Veron, J. (1990). New Scleractinia from Japan and other Indo-West Pacific Countries. <em>Galaxea.</em> 9: 95-173.","numDescendants":0,"lastCrawled":"2017-02-14T13:42:21.926+0000","lastInterpreted":"2017-02-14T13:00:20.059+0000","issues":["ORIGINAL_NAME_DERIVED","CONFLICTING_BASIONYM_COMBINATION"],"synonym":true,"class":"Anthozoa"},{"key":100173150,"nubKey":4880483,"nameKey":7024754,"taxonID":"9ab7c4e2-4e69-40ed-a128-e684ae550128","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.104+0000","issues":[],"synonym":false},{"key":100173154,"nubKey":4880483,"nameKey":7024754,"taxonID":"12559e75-a90a-4c25-aea3-ccdb4fdb83bf","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.121+0000","issues":[],"synonym":false},{"key":100173158,"nubKey":4880483,"nameKey":7024754,"taxonID":"92ea7343-22df-4873-b4e9-40409f74b4af","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.124+0000","issues":[],"synonym":false},{"key":100173162,"nubKey":4880483,"nameKey":7024754,"taxonID":"12ee3ff9-af4c-4e8f-8081-e7d4f6e5299b","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.127+0000","issues":[],"synonym":false},{"key":100173164,"nubKey":4880483,"nameKey":7024754,"taxonID":"84c84f33-746b-44b5-8b4d-4bbda7d2c4df","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.130+0000","issues":[],"synonym":false},{"key":100173168,"nubKey":4880483,"nameKey":7024754,"taxonID":"c4d607ef-2411-42d1-a467-69c1c9f26659","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.132+0000","issues":[],"synonym":false},{"key":100173171,"nubKey":4880483,"nameKey":7024754,"taxonID":"7924f639-de7e-43e4-9432-b0d5e6dca968","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.135+0000","issues":[],"synonym":false},{"key":100173175,"nubKey":4880483,"nameKey":7024754,"taxonID":"32d56d2e-f30c-48f6-a026-872cbe079b09","datasetKey":"cd174407-5632-4090-ba61-9ff3fe41bc03","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2016-03-18T03:32:43.271+0000","lastInterpreted":"2016-03-18T03:33:11.138+0000","issues":[],"synonym":false},{"key":103844245,"nubKey":4880483,"nameKey":7024754,"taxonID":"541204","kingdom":"Metazoa","phylum":"Cnidaria","order":"Scleractinia","family":"Lobophylliidae","genus":"Micromussa","species":"Micromussa amakusensis","kingdomKey":103832354,"phylumKey":103840581,"classKey":103840587,"orderKey":103842303,"familyKey":103844141,"genusKey":103844241,"speciesKey":103844245,"datasetKey":"fab88965-e69d-4491-a04d-e3198b626e52","parentKey":103844241,"parent":"Micromussa","scientificName":"Micromussa amakusensis","canonicalName":"Micromussa amakusensis","authorship":"","nameType":"SCIENTIFIC","rank":"SPECIES","origin":"SOURCE","taxonomicStatus":"ACCEPTED","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2017-04-05T12:35:20.730+0000","lastInterpreted":"2017-04-05T16:19:21.040+0000","issues":[],"synonym":false,"class":"Anthozoa"},{"key":104437493,"nubKey":4880483,"nameKey":7024762,"taxonID":"e275620","kingdom":"Metazoa","phylum":"Cnidaria","order":"Scleractinia","family":"Lobophylliidae","genus":"Micromussa","species":"Micromussa amakusensis","kingdomKey":103832354,"phylumKey":103840581,"classKey":103840587,"orderKey":103842303,"familyKey":103844141,"genusKey":103844241,"speciesKey":103844245,"datasetKey":"fab88965-e69d-4491-a04d-e3198b626e52","parentKey":103844241,"parent":"Micromussa","acceptedKey":103844245,"accepted":"Micromussa amakusensis","scientificName":"Micromussa amakusensis (Veron, 1990)","canonicalName":"Micromussa amakusensis","authorship":" (Veron, 1990)","nameType":"SCIENTIFIC","origin":"SOURCE","taxonomicStatus":"SYNONYM","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2017-04-05T12:35:20.730+0000","lastInterpreted":"2017-04-05T16:19:21.076+0000","issues":[],"synonym":true,"class":"Anthozoa"},{"key":106044866,"nubKey":4880483,"nameKey":7024762,"taxonID":"578144","kingdom":"Animalia","phylum":"Cnidaria","order":"Scleractinia","family":"Lobophylliidae","genus":"Micromussa","species":"Micromussa amakusensis","kingdomKey":105759303,"phylumKey":106038449,"classKey":106038458,"orderKey":106041523,"familyKey":106044737,"genusKey":106044865,"speciesKey":106044866,"datasetKey":"2d59e5db-57ad-41ff-97d6-11f5fb264527","parentKey":106044865,"parent":"Micromussa","scientificName":"Micromussa amakusensis (Veron, 1990)","canonicalName":"Micromussa amakusensis","authorship":" (Veron, 1990)","nameType":"SCIENTIFIC","rank":"SPECIES","origin":"SOURCE","taxonomicStatus":"ACCEPTED","nomenclaturalStatus":[],"publishedIn":"Veron, J. (1990). New Scleractinia from Japan and other Indo-West Pacific Countries. <em>Galaxea.</em> 9: 95-173.","numDescendants":0,"references":"http://www.marinespecies.org/aphia.php?p=taxdetails&id=578144","lastCrawled":"2017-04-05T12:35:47.557+0000","lastInterpreted":"2017-04-05T23:33:39.530+0000","issues":["SCIENTIFIC_NAME_ASSEMBLED","CLASSIFICATION_NOT_APPLIED"],"synonym":false,"class":"Anthozoa"},{"key":107964469,"nubKey":4880483,"nameKey":7024762,"taxonID":"11137807","kingdom":"Animalia","phylum":"Cnidaria","order":"Scleractinia","family":"Mussidae","genus":"Micromussa","species":"Micromussa amakusensis","kingdomKey":106350111,"phylumKey":107950494,"classKey":107950495,"orderKey":107961048,"familyKey":107964371,"genusKey":107964468,"speciesKey":107964469,"datasetKey":"0938172b-2086-439c-a1dd-c21cb0109ed5","parentKey":107964468,"parent":"Micromussa","scientificName":"Micromussa amakusensis (Veron, 1990)","canonicalName":"Micromussa amakusensis","authorship":" (Veron, 1990)","nameType":"SCIENTIFIC","rank":"SPECIES","origin":"SOURCE","taxonomicStatus":"ACCEPTED","nomenclaturalStatus":[],"accordingTo":"CAAB (Jul 2007)","numDescendants":0,"lastCrawled":"2016-07-28T00:58:37.055+0000","lastInterpreted":"2016-05-02T18:57:57.778+0000","issues":[],"synonym":false,"class":"Anthozoa"},{"key":114325584,"nubKey":4880483,"nameKey":7024762,"taxonID":"cbce9f16-454e-4bd3-9b67-be3c724d3a31","phylum":"Cnidaria","order":"Scleractinia","family":"Lobophylliidae","genus":"Micromussa","species":"Micromussa amakusensis","phylumKey":114319504,"classKey":114319514,"orderKey":114322547,"familyKey":114325449,"genusKey":114325583,"speciesKey":114325584,"datasetKey":"a5358a8d-9b1a-43a3-b769-50d3e6ef8bd9","parentKey":114325583,"parent":"Micromussa","scientificName":"Micromussa amakusensis (Veron, 1990)","canonicalName":"Micromussa amakusensis","authorship":" (Veron, 1990)","nameType":"SCIENTIFIC","rank":"SPECIES","origin":"SOURCE","nomenclaturalStatus":[],"numDescendants":0,"lastCrawled":"2017-02-15T20:02:28.156+0000","lastInterpreted":"2016-01-18T23:13:36.578+0000","issues":["SCIENTIFIC_NAME_ASSEMBLED"],"synonym":false,"class":"Anthozoa"},{"key":121496079,"nubKey":4880483,"nameKey":7024760,"taxonID":"160121","kingdom":"Animalia","order":"Scleractinia","family":"Mussidae","genus":"Micromussa","species":"Micromussa amakusensis","kingdomKey":121280070,"classKey":121477750,"orderKey":121483436,"familyKey":121495529,"genusKey":121496073,"speciesKey":121496079,"datasetKey":"c33ce2f2-c3cc-43a5-a380-fe4526d63650","parentKey":121496073,"parent":"Micromussa","scientificName":"Micromussa amakusensis (Veron 1990)","canonicalName":"Micromussa amakusensis","authorship":" (Veron, 1990)","nameType":"SCIENTIFIC","rank":"SPECIES","origin":"SOURCE","taxonomicStatus":"ACCEPTED","nomenclaturalStatus":[],"accordingTo":"J.E.N. Veron. 2000. Corals of the World","numDescendants":0,"lastCrawled":"2016-11-23T11:10:22.160+0000","lastInterpreted":"2016-11-23T11:25:41.551+0000","issues":["SCIENTIFIC_NAME_ASSEMBLED"],"synonym":false,"class":"Anthozoa"}]}';
$array=  json_decode($json,true);

foreach($array["results"] as $result)
{
    $data[]=isset($result["taxonomicStatus"]) ? $result["taxonomicStatus"] : false;
}
print_r($data);

解决方案2:

array_map(function($result) use (&$data){
    $data[]=isset($result["taxonomicStatus"]) ? $result["taxonomicStatus"] : false;
}, $array["results"]);
print_r($data);

输出:

Array
(
    [0] => HOMOTYPIC_SYNONYM
    [1] => 
    [2] => 
    [3] => 
    [4] => 
    [5] => 
    [6] => 
    [7] => 
    [8] => 
    [9] => ACCEPTED
    [10] => SYNONYM
    [11] => ACCEPTED
    [12] => ACCEPTED
    [13] => 
    [14] => ACCEPTED
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP:如何使所有数组具有相同的键

来自分类Dev

如果数组可以有任何大小和嵌套,如何从PHP数组中的特定键获取所有数据?

来自分类Dev

在php数组中搜索值并获取所有键

来自分类Dev

用串行键合并所有数组值

来自分类Dev

将键中的值与所有数组项合并

来自分类Dev

在读取CSV中的php时在所有数组中实现第一个数组键

来自分类Dev

PHP从具有键的数组的多维数组中获取价值

来自分类Dev

PHP获取父数组的键

来自分类Dev

PHP对象数组获取键

来自分类Dev

php-查找具有相同数组键的所有元素的总和时出错

来自分类Dev

多维数组:如何获取特定键的所有值?

来自分类Dev

获取PostgreSQL中所有json字段键的数组

来自分类Dev

如何从哈希数组中获取键的所有值?

来自分类Dev

JavaScript获取其中带有数组键的字段数组的长度

来自分类Dev

如何在PHP数组中获取键搜索的所有值与另一个键的值?

来自分类Dev

PHP递归循环“文件树”数组无法获取所有键

来自分类Dev

从php文件中的所有数组var获取值

来自分类Dev

PHP多维数组搜索并获取键的数组

来自分类Dev

从数组返回某些键

来自分类Dev

PHP-从深度未知的多维数组中获取具有特定数组键的所有值

来自分类Dev

PHP数组:如何向现有数组添加“键和值”

来自分类Dev

AngularJS orderby具有数组数组和单独的键

来自分类Dev

PHP,数组操作以获取具有相同名称的键

来自分类Dev

在 PHP 中获取具有特定键格式的数组值

来自分类Dev

javascript在所有数组位置删除JSON键,但保持子级

来自分类Dev

如何检查所有数组键是否都包含子键

来自分类Dev

更改数组中的所有键

来自分类Dev

遍历数组的所有键

来自分类Dev

将键/值对从现有数组翻转到关联数组,该数组允许PHP中具有多个值的键

Related 相关文章

  1. 1

    PHP:如何使所有数组具有相同的键

  2. 2

    如果数组可以有任何大小和嵌套,如何从PHP数组中的特定键获取所有数据?

  3. 3

    在php数组中搜索值并获取所有键

  4. 4

    用串行键合并所有数组值

  5. 5

    将键中的值与所有数组项合并

  6. 6

    在读取CSV中的php时在所有数组中实现第一个数组键

  7. 7

    PHP从具有键的数组的多维数组中获取价值

  8. 8

    PHP获取父数组的键

  9. 9

    PHP对象数组获取键

  10. 10

    php-查找具有相同数组键的所有元素的总和时出错

  11. 11

    多维数组:如何获取特定键的所有值?

  12. 12

    获取PostgreSQL中所有json字段键的数组

  13. 13

    如何从哈希数组中获取键的所有值?

  14. 14

    JavaScript获取其中带有数组键的字段数组的长度

  15. 15

    如何在PHP数组中获取键搜索的所有值与另一个键的值?

  16. 16

    PHP递归循环“文件树”数组无法获取所有键

  17. 17

    从php文件中的所有数组var获取值

  18. 18

    PHP多维数组搜索并获取键的数组

  19. 19

    从数组返回某些键

  20. 20

    PHP-从深度未知的多维数组中获取具有特定数组键的所有值

  21. 21

    PHP数组:如何向现有数组添加“键和值”

  22. 22

    AngularJS orderby具有数组数组和单独的键

  23. 23

    PHP,数组操作以获取具有相同名称的键

  24. 24

    在 PHP 中获取具有特定键格式的数组值

  25. 25

    javascript在所有数组位置删除JSON键,但保持子级

  26. 26

    如何检查所有数组键是否都包含子键

  27. 27

    更改数组中的所有键

  28. 28

    遍历数组的所有键

  29. 29

    将键/值对从现有数组翻转到关联数组,该数组允许PHP中具有多个值的键

热门标签

归档