我需要一些帮助格式化我从api获得的数组,目前的格式对我来说很难处理,所以我想改变它以获得更实用的东西。 我有以下数组:
[attributes] => Array
(
[0] => Array
(
[attribute] => Healing
[modifier] => 179
)
[1] => Array
(
[attribute] => Toughness
[modifier] => 128
)
[2] => Array
(
[attribute] => ConditionDamage
[modifier] => 128
)
我想把它变成这个:
[attributes] => Array
(
[Healing] => 179
[Toughness] => 128
[ConditionDamage] => 128
)
任何帮助将不胜感激。
答案 0 :(得分:1)
如果您使用的是PHP> = 5.5
$array['attributes'] = array_column(
$array['attributes'],
'attribute',
'modifier'
);
其他
$array['attributes'] = array_walk(
$array['attributes'],
function (&$value) {
$value[$value['attribute']] = $value['modifier'];
unset($value['attribute'], $value['modifier']);
}
);
答案 1 :(得分:1)
使用PHP> = 5.5,您可以将array_column()与array_combine()结合使用。
$new_arr = array_combine(array_column($arr, 'attribute'), array_column($arr, 'modifier'));
否则,简单的foreach
将起作用:
foreach ($arr as $ar) {
$new_arr[$ar['attribute']] = $ar['modifier'];
}
答案 2 :(得分:1)
function flattenAPIarray($APIArray)
{
$flatArray = [];
foreach($APIArray as $element)
{
$key = array_keys($element);
$flatArray[$element[$key[0]]] = $element[$key[1]];
}
return $flatArray;
}
试试这个功能,我为你写的。它没有以任何方式推广,但可以与多维关联数组一起使用。线索是使用array_keys()函数,因为你没有任何索引可以使用foreach循环进行迭代。
希望有所帮助! (这是我的第一个答案 - 善良:o)