我有一个像这样的关联数组:
[1] => Array
(
[logo] =>
[starting] =>
[prelim_info] =>
[state_entry] => 1
[district_entry] => 3
[CLIx_code] => 1009
[survey_time] => 2017-05-29 09:38:00.0
[Implement_module] =>
[CLIxModule_Impl] => 1
[Noimplement_reason] =>
[Other_Reason] =>
[implementedModule_Name] => 7 10 11 12
[Lab_Open] => 3
[Lab_Management] => 1
[Planned_CLIxPeriods] => 2
[ReasonsCancellation_CLIxClass] => 5
[PowerCut_Visit] => 2
[Observe_session:Session_observe] => 2
[Observe_session:grade_observe] =>
[Observe_session:grade_other] =>
[Observe_session:Module_Observed] =>
[Observe_session:Unit_Observed] =>
[Observe_session:Lesson_Observed] =>
[Observe_session:time_Sufficient] =>
[Observe_session:Student_workindependent] =>
[Observe_session:groupsinteracting] =>
[Observe_session:groupshelping] =>
[Observe_session:Students_Mothertongue] =>
[Observe_session:Students_handbook] =>
[Observe_session:Students_reflections] =>
[Observe_session:teacherpresent] =>
[Observe_session:encourage_platform] =>
[Observe_session:encourage_classdisc] =>
[Observe_session:mothertongue_teacher] =>
[Observe_session:teacher_handbook] =>
[Observe_session:Teacher_prepared] =>
[TPDcertification_support1:TPD_Cert_Subject1] =>
[TPDcertification_support1:tchrSupport_TPD1] =>
[TPDcertification_support1:Source_Support] =>
[TPDcertification_support2:TPD_Cert_Subject2] =>
[TPDcertification_support2:tchrSupport_TPD2] =>
[TPDcertification_support2:Source_Support] =>
[TPDcertification_support3:TPD_Cert_Subject] =>
[TPDcertification_support3:tchrSupport_TPD3] =>
[TPDcertification_support3:Source_Support] =>
[TPDcertification_support4:TPD_Cert_Subject] =>
[TPDcertification_support4:tchrSupport_TPD4] =>
[TPDcertification_support4:Source_Support] =>
[teacher_feedback] => Regarding the old modules, maths teachers said that it was very useful as well as workbook.
[FSP_feedback] => NA
[TPDsuppport_certification:Supt_TPDcertification] => 1
[TPDsuppport_certification:Source_Supportcertification] => 4
[teacherSupport_moduleImplement] => They had training organised by the clix team and RMSA.
[HighPoint] => NA
[LowPoint] => There was no clix class since school reopen.
[schlcontact_FSP_nooftimes] => 0
[FT_contactreason] => 5
[FT_otherreason] =>
[Support_fromTE] => 2
[Action_FT] => 1
[Specific_ActionFT] => School lab need to recheck for start rolling out the modules.
[Action_CLIxTeam] => 2
[Sepecific_ActionCLIx] =>
[Action_State] => 1
[Specific_ActionState] => To issue the class period include in their regular time table.
[Action_TPD] => 2
[Specific_ActionTPD] =>
[Session_observe2:Module_Second] =>
[Session_observe2:Observe_grade] =>
[Session_observe2:other_grade] =>
[Session_observe2:Observation_Module2] =>
[Session_observe2:Observation_Unit2] =>
[Session_observe2:Observation_Lesson2] =>
[Session_observe2:time_Sufficient2] =>
[Session_observe2:Student_workindependent2] =>
[Session_observe2:groupsinteracting2] =>
[Session_observe2:groupshelping2] =>
[Session_observe2:Students_Mothertongue2] =>
[Session_observe2:Students_handbook2] =>
[Session_observe2:Students_reflections2] =>
[Session_observe2:teacherpresent2] =>
[Session_observe2:encourage_platform2] =>
[Session_observe2:encourage_classdisc2] =>
[Session_observe2:mothertongue_teacher2] =>
[Session_observe2:teacher_handbook2] =>
[Session_observe2:Teacher_prepared2] =>
[teacher_feedback2] =>
[FSP_feedback2] =>
[TPD_certification:tcher_TPD] =>
[TPD_certification:certification_course_tchr_suport] =>
[teachersupport_moduleImplement2] =>
[school_location:Latitude] => 23.7428370300
[school_location:Longitude] => 92.7227306900
[school_location:Altitude] => 1014.0000000000
[school_location:Accuracy] => 18.0000000000
[generated_note_name_110] =>
[meta:instanceID] => uuid:2568400e-0ec3-421d-94bc-10653732e6d2
)
我想从这个数组中获得一些键值对进行数据分析和可视化。输出应该如下所示: -
array(
[CLIx_code] => 1009
[state_entry] => 1
[district_entry] => 3
...
)
基本上,我想要一个过滤了几个键值对的数组,我可以操作一些数学函数并将它们传递给D3.js进行数据可视化。
我试过这种方式:
for ($i=0;$i<count($all_rows);$i++){
$filteredarray[] = array($all_rows[$i]['CLIx_code'], $all_rows[$i]['state_entry'], $all_rows[$i]['district_entry']);
}`
但我希望键值对不仅是我尝试使用array_filter()
的值。
答案 0 :(得分:0)
我必须假设您知道要保留的元素的关键名称并运行计算,因此array_intersect_key()
是正确的工具。
代码(Demo):
$array=[
'logo'=>'',
'starting'=>'',
'prelim_info'=>'',
'state_entry'=>1,
'district_entry'=>3,
'CLIx_code'=>1009
// ... more elements
];
$filterkeys=[
'state_entry',
'district_entry',
'CLIx_code'
// ... more key names
];
var_export(array_intersect_key($array,array_flip($filterkeys)));
输出:
array (
'state_entry' => 1,
'district_entry' => 3,
'CLIx_code' => 1009,
)
或者,如果您将array_flip()
键名称设置为键,则可以放弃$filterkeys
来电,如下所示:
$filterkeys=[
'state_entry'=>'',
'district_entry'=>'',
'CLIx_code'=>''
// ... more key names
];
var_export(array_intersect_key($array,$filterkeys));
答案 1 :(得分:-1)
PHP: How to use array_filter() to filter array keys?
请参阅此问题的答案 就像你的情况一样,你需要编写如下代码: -
MyClass.singleton.GetValue();