鍍金池/ 問答/數(shù)據(jù)分析&挖掘  PHP/ PHP新手一個(gè),問一個(gè)數(shù)組查詢的問題

PHP新手一個(gè),問一個(gè)數(shù)組查詢的問題

我有一個(gè)數(shù)組

array = [{id:1,name:'張三1'},{id:2,name:'張三2'},{id:3,name:'張三3'},{id:4,name:'張三4'},{id:5,name:'張三5'},{id:6,name:'張三6'},{id:7,name:'張三7'}];

有沒有方法可以直接查詢到 id=3的元素內(nèi)容,即返回{id:3,name:'張三3'},還是說只能foreach循環(huán)數(shù)組來查找

回答
編輯回答
逗婦乳

第一種 php5.5或更高版本

$array       = json_decode('[{"id":1,"name":"張三1"},{"id":2,"name":"張三2"},{"id":3,"name":"張三3"},{"id":4,"name":"張三4"},{"id":5,"name":"張三5"},{"id":6,"name":"張三6"},{"id":7,"name":"張三7"}]');
$arrayWithId = array_column($array, null, 'id');
$result      = $arrayWithId[3];
print_r($result);

第二種

你這是json數(shù)組,如果是php需要使用json_decode() 轉(zhuǎn)換為php數(shù)組,然后for循環(huán)

第三種

如是是js處理,3樓說的對(duì)

2018年6月15日 07:13
編輯回答
熊出沒

你這應(yīng)該是js語法吧,php沒有這樣的,js隨便寫,基本就是我這下面的栗子

Array.prototype.get = function (index) {
  for(var i = 0; i < this.length; i++) {
    if(this[i].id === index) {
      return this[i];
    }
  }

  return false;
}

array.get(3);
2017年7月7日 01:19
編輯回答
瞄小懶

只能foreach循環(huán)數(shù)組吧!

2017年12月23日 12:44
編輯回答
初念

如果是json格式,直接先轉(zhuǎn)換成數(shù)組的形式,然后利用array_column這個(gè)函數(shù)來解決就行!樓上已有回答!

2018年3月20日 14:50
編輯回答
蝶戀花

看標(biāo)簽是php問題, 看結(jié)構(gòu)是js問題, php的話可以考慮array_column將id做為鍵處理數(shù)組再通過下標(biāo)取值

2017年9月17日 23:59
編輯回答
墻頭草
array_column($arr, null, 'id')[3]
2018年1月9日 22:15