首頁 > 後端開發 > php教程 > 类似于这样子的数据,如果我有一个变量nId,如何遍历后去的知道他的name。

类似于这样子的数据,如果我有一个变量nId,如何遍历后去的知道他的name。

WBOY
發布: 2016-06-23 14:20:22
原創
844 人瀏覽過

[ {
  "Id" : "t1sd",
  "Name" : "xiaoxiao",
  "Namea" : "测试样子",
  "nId" : "csd2"
}, {
  "Id" : "ae2",
  "Name" : "张三",
  "Namea" : "哈哈",
  "nId" : "20af"
}, {
  "Id" : "c3P",
  "Name" : "用户1",
  "Namea" : "dingding",
  "nId" : "4fc"
。。。。。。。。。。。。。。
} ]

我有这样子的一组数据,并且不知道他的具体长度,所以,里面用我用了“。。。。。。。。。”来省略。
如果我知道一个变量nId,如何去u偶的他的name的值。
比如,如果我找到一个nId等于4fc。如何通过代码获取到他的name是“用户1”;


回复讨论(解决方案)

数据什么格式?

如果你只有这样一个数据,那你只能遍历了。
foreach($arr as $data){
 if($data['nId']=='4fc'){
   echo $data['Name'];
   break;
 }
}
如果查找次数比较多,而且这个数据量很大,那建议先做一个索引。
$nId_array = array();
foreach($arr as $data){
  $nId_array [$data['nId']] = $data['Name'];
}

然后每次查询从这个 $nId_array 里找就可以了

$s =<<< TXT[ {  "Id" : "t1sd",  "Name" : "xiaoxiao",  "Namea" : "测试样子",  "nId" : "csd2"}, {  "Id" : "ae2",  "Name" : "张三",  "Namea" : "哈哈",  "nId" : "20af"}, {  "Id" : "c3P",  "Name" : "用户1",  "Namea" : "dingding",  "nId" : "4fc"} ]TXT;$nId = '4fc';$t = json_decode($s, true);$r = array_filter($t, function($a)use($nId) { return $a['nId'] == $nId; });echo current($r)['Name'];
登入後複製
用户1

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板