[英]Get Specific Data From Array, Based On Another Value
我有一個輸出這些值的數組:
Array (
[0] => stdClass Object (
[ID] => 6585
[COLOR] => red
[Name] => steve
)
[1] => stdClass Object (
[ID] => 5476
[COLOR] => blue
[Name] => sol
)
[2] => stdClass Object (
[ID] => 7564
[COLOR] => yellow
[Name] => jake
)
[3] => stdClass Object (
[ID] => 3465
[COLOR] => green
[Name] => helen
)
)
現在,我將知道該人的ID,並且需要獲取該特定值集的COLOR值。 請問如何最好地做到這一點?
像這樣:
function getColorById($arr, $id){
foreach($arr as $item){
if ($item->ID == $id)
return $item->COLOR;
}
return "blah!";
}
使用類似echo getColorById($arr, 3465);
編輯 :您擁有數據的方式會導致訪問時間變慢。 一個更好的建議是(因為ID
似乎是唯一的),所以您最好將其作為數組的鍵。 您現在有整數索引。 構造數組(除非您從無法控制的某個區域接收它)如下所示:
$arr = array();
$arr["ID_4634"] = <object>;
您可能想要更改存儲方式,以便更快地訪問。
使用當前格式,您將需要遍歷元素並比較顏色,直到找到匹配項。
for($i=0;$i<count($array);$i++){
if($array[$i]['ID'] == $id)
return $array[$i]['COLOR']
}
或者,將其與ID一起存儲為密鑰。
$users = array();
$count = count($arr);
for ($i = 0; $i < $count; $i++) {
$users[$arr[$i]['ID']] = array(
'Name' => $arr[$i]['Name'],
'COLOR' => $arr[$i]['COLOR']
);
}
echo $users[$id]['COLOR'];
其中$ arr代表您在初始帖子中輸出的數組,而$ id是您嘗試訪問的有色人的ID。 您還可以通過使用獲得他們的名字
echo $users[$id]['Name'];
ID嘗試以下:
for($i=0; $i<count($array); $i++)
{
if($array[$i]['ID'] == $id)
return $array[$i]['COLOR'];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.