假设有一个像这样的二维数组:
$rates = [
['id' => 'd', 'title' => 'dollar', 'sign' => '$'],
['id' => 'r', 'title' => 'rial', 'sign' => 'ریال'],
['id' => 't', 'title' => 'toman', 'sign' => 'T']
]
我有一个名为$ rate的变量:
$rate = 'd';
现在我只想得到title
数组的值id
是$rate
值dollar
。在这种情况下$rates[????][title]
。
我知道我们可以搜索主数组中的数组但我寻找一种更简单的方法,如payment_id
。
什么是最好的方法?
答案 0 :(得分:3)
如果您将其转换为使用id
作为密钥使用array_column
,那么您可以从那时开始访问...
$rates = [
['id' => 'd', 'title' => 'dollar', 'sign' => '$'],
['id' => 'r', 'title' => 'rial', 'sign' => 'ریال'],
['id' => 't', 'title' => 'toman', 'sign' => 'T']
]
$rates = array_column($rates,null,'id');
echo $rates['d']['title'];
...给出
dollar
答案 1 :(得分:2)
如果您想避免循环,使用array_search和array_column是最好的方法。
您还可以转换数组或创建搜索功能,以便根据传递的内容选择您想要的内容
例如:在$rates
获取title
id
等于d
<?php
$rates = [
['id' => 'd', 'title' => 'dollar', 'sign' => '$'],
['id' => 'r', 'title' => 'rial', 'sign' => 'ریال'],
['id' => 't', 'title' => 'toman', 'sign' => 'T']
];
$rates = function ($key, $where, $equals) use ($rates) {
return $rates[array_search($equals, array_column($rates, $where))][$key];
};
echo $rates('title', 'id', 'd'); // dollar
echo $rates('sign', 'id', 'd'); // $
echo $rates('sign', 'title', 'dollar'); // $