有没有办法压扁这个数组:
Array (
[0] => Array (
[country_code] => IM
[language_code] => GB
)
[1] => Array (
[country_code] => GG
[language_code] => JE
)
[2] => Array (
[country_code] => US
[language_code] => US
)
)
到此:
array (
"IM" => "GB"
"GG" => "JE"
"US" => "US"
)
我需要将每个项中的第一项作为键,将第二项作为值。
更新
是否可以使用secon概念获得多个值。如果我有这个数组:
Array ( [0] => Array ( [country_code_two] => GBR [country_code_three] => GB [language_code] => EN ) )
并想要创建以下内容:
array (
[GBR] => array ([0] => "GB", [1] => "EN")
)
这怎么可能?我目前正在使用你的第二个选项,因为我没有5.5
答案 0 :(得分:3)
如果您使用的是PHP 5.5,则可以执行以下操作:(Docs)
$result = array_column($source, "language_code", "country_code");
如果您没有使用PHP 5.5,那么您应该:p
更严重的是,向后兼容的版本:
$keys = array_map(function($a) {return $a['country_code'];},$source);
$vals = array_map(function($a) {return $a['language_code'];},$source);
$result = array_combine($keys,$vals);
如果你以某种方式坚持使用真正的旧版本的PHP,那么"传统":
$result = array();
foreach($source as $a) {
$result[$a['country_code']] = $a['language_code'];
}