亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在php中推送多維數組中的值

如何在php中推送多維數組中的值

PHP
慕標琳琳 2021-11-05 10:34:33
$classType 數組我正在存儲類明智的類型,例如具有類型 A 的類 1 和具有類型的類 2 是 A 和具有類型的類 3 是 B$clollege['studentDetails']數組我想根據類從$classType數組中推送類型是什么類型$clollege['studentDetails']年級和$classType班級都是一樣的。預期產出Array(    [0] => Array        (            [grade] => 2            [hobbies] => Array                (                    [0] => A                    [1] => B                )        [type] => A        )    [1] => Array        (            [grade] => 2            [hobbies] => Array                (                    [0] => A                )           [type] => A        )    [2] => Array        (            [grade] => 3            [hobbies] => Array                (                    [0] => C                )        [type] => A        )我已經嘗試過但沒有達到我預期的答案,請任何人更新我的答案,我已經在下面的部分中發布了我的代碼。我知道這是一個簡單的問題,如果有人發布你的,以便我可以從這里學習如何推動我的代碼<?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"] ]];
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

您可以在array_walk()的幫助下嘗試以下方法。


$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>';



查看完整回答
反對 回復 2021-11-05
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您不能grade在單個或子數組元素中用作鍵 2 次,我已經通過使用type索引提到了解決方案。


你可以用foreach與array_reduce


 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'];

工作演示:https : //3v4l.org/5HGLk


查看完整回答
反對 回復 2021-11-05
  • 2 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號