Php 如果我们有数组索引的概念,如何使用array\u column函数从数组中获取记录?
我有一系列的加密硬币利率。 阵列的外观如下所示:Php 如果我们有数组索引的概念,如何使用array\u column函数从数组中获取记录?,php,arrays,associative-array,Php,Arrays,Associative Array,我有一系列的加密硬币利率。 阵列的外观如下所示: $array = Array ( [0] => Array ( [code] => BTC [name] => Bitcoin [rate] => 1 ) [1] => Array ( [code] => BCH [name] => Bitcoin Cash [rate] => 7.06364 ) [2] => Array ( [code] => USD [name] => U
$array = Array ( [0] => Array ( [code] => BTC [name] => Bitcoin [rate] => 1 )
[1] => Array ( [code] => BCH [name] => Bitcoin Cash [rate] => 7.06364 )
[2] => Array ( [code] => USD [name] => US Dollar [rate] => 8185.84 ) )
我使用$array[1]['rate']获得结果代码>
但我想通过[代码]得到结果
像$array['USD']['rate']
像$array['BCH']['rate']
如何使用货币代码获取汇率,例如美元您可以循环数组并构建一个新的关联数组以用于项目的其余部分
$array = Array( 0 => Array( "code" => "BTC", "name" => "Bitcoin", "rate" => 1 ),
"1" => Array ( "code" => "BCH", "name" => "Bitcoin Cash", "rate" => 7.06364 ),
"2" => Array ( "code" => "USD", "name" => "US Dollar", "rate" => 8185.84 ) );
foreach($array as $val){
$rates[$val["code"]] = $val;
}
echo $rates['USD']['rate']; // 8185.84
另一种选择是使用array\u column和array\u组合来完成,而不使用循环
$array = Array( 0 => Array( "code" => "BTC", "name" => "Bitcoin", "rate" => 1 ),
"1" => Array ( "code" => "BCH", "name" => "Bitcoin Cash", "rate" => 7.06364 ),
"2" => Array ( "code" => "USD", "name" => "US Dollar", "rate" => 8185.84 ) );
$keys = array_column($array, "code");
$rates = array_combine($keys, $array);
echo $rates['USD']['rate'];
您可以在回调函数中使用键并将其设置为code
的值:
$array = array_reduce($array, function($carry, $item) {
$carry[$item["code"]] = $item;
return $carry;
});
echo $array["USD"]["rate"]; //8185.84
可能存在的副本