如何通过ID快速获取PHP二维数组中对应title的值?
最优实现:无需遍历快速获取指定id的数组元素title值
嘿,这个需求我太熟悉了!不用手动遍历数组的话,PHP内置的array_column()函数就是最优解——它是底层实现的,效率比自己写循环高得多,而且代码超简洁。
两种实现方式,按需选择:
方式一:保留完整元素,方便后续复用其他字段
如果你之后还需要获取该元素的sign等其他字段,可以先把原数组重新索引为以id为键的关联数组:
$rates = [ ['id' => 'd', 'title' => 'dollar', 'sign' => '$'], ['id' => 'r', 'title' => 'rial', 'sign' => 'ریال'], ['id' => 't', 'title' => 'toman', 'sign' => 'T'] ]; $rate = 'd'; // 用id作为新数组的键,保留原元素完整结构 $indexedRates = array_column($rates, null, 'id'); // 直接通过$rate访问对应元素的title $targetTitle = $indexedRates[$rate]['title']; // 结果:'dollar'
之后如果需要取该元素的sign,直接$indexedRates[$rate]['sign']就能拿到,非常方便。
方式二:直接提取title,更省内存
如果只需要title这一个字段,可以一步到位,直接生成以id为键、title为值的数组:
$rates = [ ['id' => 'd', 'title' => 'dollar', 'sign' => '$'], ['id' => 'r', 'title' => 'rial', 'sign' => 'ریال'], ['id' => 't', 'title' => 'toman', 'sign' => 'T'] ]; $rate = 'd'; // 直接生成id => title的映射数组,然后取值 $targetTitle = array_column($rates, 'title', 'id')[$rate]; // 结果:'dollar'
注意事项
这个方案的前提是数组中每个元素的id值都是唯一的,从你给出的示例数组来看完全满足这个条件,所以可以放心使用~
内容的提问来源于stack exchange,提问作者Ahmad Badpey
相关产品推荐
相关产品推荐

