繁体   English   中英

如何从PHP关联数组中基于同级键的已知值获取键的值?

[英]How to get the value of a key based on the known value of a sibling key from a PHP associative array?

考虑以下数组:

$bookmarksIDs = [
    [
        "id"=> 33767,
        "dateAdded"=> 1551944452042
    ],
    [
        "id"=> 33743,
        "dateAdded"=> 1551944540159
    ]
]

如果我知道id的值,如何获取其同级dateAdded键的值?

您可以执行以下操作:

foreach ($bookmarksIDs as $bookmarksID) {
    if($bookmarksID["id"] == "33767"){
        //do something
    }
}

如果要获取同级的值,则需要遍历数组以找到它,就像@MRustamzade回答的那样。

 foreach ($bookmarksIDs as $bookmarksID) {
  if($bookmarksID["id"] == "33767"){
    //do something
   }
 }

但是,如果您要寻求更好的性能,则可以更改要通过id值索引的数组的结构,即:

$bookmarksIDs = [
"id_33767"=>[

    "dateAdded"=> 1551944452042
],
"id_33743"=>[
    "dateAdded"=> 1551944540159
]
]

因此您可以通过以下方式直接访问它:

 $bookmarksIDs["id_".$id/*33743*/]["dateAdded"];

在这种情况下,请确保id的值是唯一的,以不覆盖旧值

或者如果您想保留数组结构,可以使用

  array_column($bookmarksIDs ,'dateAdded','id') 

得到像这样的数组:

 $bookmarksIDs = [
 "33767"=>1551944452042  
 , 
 "33743"=> 1551944540159

]

并将dateAdded直接添加到书签ID [“ 33767”]。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM