Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果我们有数组索引的概念,如何使用array\u column函数从数组中获取记录?_Php_Arrays_Associative Array - Fatal编程技术网

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

可能存在的副本