我有一个数组
Array (
[Hindi] => Array
(
[0] => Array
(
[Examinations] => 124
)
[1] => Array
(
[Assignment] => 124
)
[2] => Array
(
[Projects] => 124
)
)
[Punjabi] => Array
(
[0] => Array
(
[Examinations] => 0
)
[1] => Array
(
[Projects] => 124
)
)
)
等等。但我需要按照我的要求使用以下格式。是否有人知道如何制作这样的数组
Array (
[Hindi] => Array
(
[Examinations] =>124
[Assignment] => 124
[Projects] => 124
)
)
等等
任何人都知道如何做到这一点
由于
答案 0 :(得分:2)
这应该是你需要的:
foreach ($array as $key => $value)
{
foreach ($value as $k => $v)
{
$new_array[$key][key($v)] = current($v);
}
}
答案 1 :(得分:1)
您是否尝试将原始数组转换为生成的数组格式?试试这个。假设您的原始数组名为$languages
:
$result = array();
foreach ($languages as $lang => $scores) {
foreach($scores as $score) {
foreach($score as $category => $number) {
if (!is_array($result[$lang]) {
$result[$lang] = array();
}
array_push($result[$lang], array($category => $number))
}
}
}
$result
是您的新阵列。
但是,如果您正在尝试创建生成的数组格式,但最终会使用前一个格式,那么您需要在此处提供用于生成前一个的源代码,以便我们可以帮助您更改它这样它就能生成正确的格式。
答案 2 :(得分:-1)
以下是您的解决方案:
<?
$array = array (
'Hindi' => array(
array(
'Examinations' => 124
),
array(
'Assignment' => 124
),
array(
'Projects' => 124
)
),
'Punjabi' => array(
array(
'Examinations' => 0
),
array(
'Projects' => 124
)
)
);
$resultingArray = array();
$currentArray = $resultingArray;
foreach($array as $key => $value){
$arrayPart = array();
if(is_array($value)){
foreach ($value as $innerArray){
$arrayPart = array_merge($arrayPart, $innerArray);
}
}
$resultingArray[$key] = $arrayPart;
}
?>