如何在php中推送多维数组中的值

如何在php中推送多维数组中的值,php,php-7,Php,Php 7,$classType数组我存储的是类类型,比如类1的类型是A,类2的类型是A,类3的类型是B $clollege['studentDetails']数组我想根据类从$classType数组推送类型什么是类型 $clollege['studentDetails']等级和$classType等级都是相同的 预期产量 我已经试过了,但没有得到我期望的答案,请任何人更新我的答案,我已经在下面的部分发布了我的代码。我知道这是一个简单的问题,如果有人发表你的文章,我可以从这里学习 如何推动 我的代码 您可以

$classType数组我存储的是类类型,比如类1的类型是A,类2的类型是A,类3的类型是B

$clollege['studentDetails']数组我想根据类从$classType数组推送类型什么是类型

$clollege['studentDetails']等级和$classType等级都是相同的

预期产量

我已经试过了,但没有得到我期望的答案,请任何人更新我的答案,我已经在下面的部分发布了我的代码。我知道这是一个简单的问题,如果有人发表你的文章,我可以从这里学习 如何推动

我的代码


您可以在的帮助下尝试以下方法

工作。

您不能在单个或子数组元素中使用grade作为键2次,我已经提到了使用类型索引的解决方案

您可以将foreach与array_reduce一起使用

更新

更改代码

$grade  = isset($val['group']['grade']) ? $val['group']['grade'] : $val['grade'];

如果两种情况都有机会,请使用


正在工作的演示:

类可能重复,以及如何重新分配到预期的输出?你总是把索引0和索引0混在一起吗?等级你不能在一个数组中使用相同的键名你能请任何人发布你的答案吗?我试过了,但我无法得到我预期的答案为什么你期望有两个相同的键等级?这是为了echo。更新了,你现在可以试试。一个小问题假设$studentList['studentDetails']数组级别在组数组下意味着,如何更改代码,预期输出是相同的。我已经在更新代码中发布了我的$studentList['studentDetails']section@KaniR,我不清楚你的问题。新的数据结构是什么?是$clollege['studentDetails']还是$studentList['studentDetails']?非常混乱。清楚地描述这两个数据结构是什么。我现在得到了答案一个小问题假设$studentList['studentDetails']数组等级它是在组数组方式下,如何更改代码,预期输出是相同的。我已经在更新代码部分发布了我的$studentList['studentDetails']
<?php
$classType = [
    ["class" => "1", "type" => "A"],
    ["class" => "2", "type" => "A"],
    ["class" => "3", "type" => "B"]
];

$clollege['studentDetails'] = [
   ["grade" => "2", "hobbies" => ["A" , "B"] ],
   ["grade" => "2", "hobbies" => ["A" ] ],
   ["grade" => "3", "hobbies" => [ "C" ] ]
];

foreach ($classType as $item) {
        $clollege['studentDetails'][$item['class']]['type'] = $item['type'];
}

echo "<pre>";
print_r($clollege['studentDetails']);exit;
?>
$studentList['studentDetails'] = [
    [ "group" => ["id" => 1 , "grade" => "2"] ],
    [ "group" => ["id" => 2 , "grade" => "2", ] ],
    [ "group" => [ "id" => 3, "grade" => "3"] ]
];
$classType = [
    ["class" => "1", "type" => "A"],
    ["class" => "2", "type" => "A"],
    ["class" => "3", "type" => "B"]
];

$clollege['studentDetails'] = [
    ["grade" => "2", "hobbies" => ["A" , "B"] ],
    ["grade" => "2", "hobbies" => ["A" ] ],
    ["grade" => "3", "hobbies" => [ "C" ] ]
];

$classType = array_column($classType, 'type', "class");
array_walk($clollege['studentDetails'], function(&$item) use($classType) {
    $item['type'] = $classType[$item['grade']];
});

echo '<pre>';
print_r($clollege['studentDetails']);
echo '</pre>';
 foreach($clollege['studentDetails'] as $key => &$val){
    $grade       = $val['grade'];
    $val['type'] = array_reduce($classType, function($r, $item) use ($grade){
      return ($item['class'] == $grade) ? $item['type'] : $r;
    }); 
  }
  print_r($clollege);
$grade = $val['grade'];
$grade = $val['group']['grade'];
$grade  = isset($val['group']['grade']) ? $val['group']['grade'] : $val['grade'];