gpt4 book ai didi

php - 如何根据非常深的键值对数组进行排序

转载 作者:行者123 更新时间:2023-12-01 15:22:15 24 4
gpt4 key购买 nike

我有这个数组:

array(
(int) 0 => array(
'Inscricao' => array(
'id' => '89560',
'codigo' => null,
'aluno_id' => '28065',
'turma_id' => '14377',
'estado_inscricao_id' => '13',
'nota_frequencia' => '12.00',
'nota_final' => '10.75',
'epoca_avaliacao_id' => null,
'data' => '2014-02-10',
'created' => '2015-08-31 07:12:42',
'modified' => '2015-09-02 01:31:00',
'matricula_id' => '136247',
'created_by' => null,
'modified_by' => null,
'pagamento_id' => null,
'tipo_inscricao_id' => '1',
'nota_exame_normal' => '9.50',
'nota_exame_recorrencia' => null,
'estado_inscricao' => '2',
'turma_inscricao_id' => null,
'turma_frequencia_id' => '14377'
),
'Turma' => array(
'id' => '14377',
'ano_lectivo_id' => '30',
'curso_id' => '18',
'plano_estudo_id' => '91',
'turno_id' => null,
'disciplina_id' => '394',
'capacidade_maxima' => null,
'total_aprovados' => null,
'media_turma' => null,
'estado_turma_id' => '1',
'modified' => '2015-08-31 07:02:54',
'created' => '2015-08-31 07:02:54',
'total_reprovados' => null,
'codigo' => '2011',
'ano_curricular' => '2',
'semestre_curricular' => '2',
'name' => 'Sociologia do Desporto - 2014 - Licenciatura em Ciências do Desporto - 2011',
'semestre_lectivo_id' => '66',
'sala_aula_id' => null,
'sequencia' => null,
'peso_nota_frequencia' => null,
'peso_nota_exame' => null,
'nota_minima_frequencia' => null,
'nota_minima_dispensa' => null,
'created_by' => null,
'modified_by' => null,
'pauta_path' => null,
'total_alunos' => '44',
'AnoLectivo' => array(
'id' => '30',
'codigo' => '2014',
'ano' => '2014',
'num_semestre' => null,
'data_inicio' => null,
'data_fim' => null,
'created' => '2013-10-08 05:13:51',
'modified' => '2013-10-08 05:13:51',
'regime_lectivo_id' => null
),
'Curso' => array(
'name' => 'Licenciatura em Ciências do Desporto'
),
'Turno' => array(),
'Disciplina' => array(
'id' => '394',
'name' => 'Sociologia do Desporto',
'codigo' => 'SOD',
'codigo_antigo' => null,
'created' => '1432892405',
'modified' => '1432892405',
'created_by' => '54193',
'modified_by' => null,
'unidade_organica_id' => null
)
),
'EstadoInscricao' => array(
'id' => '13',
'name' => 'Aprovado sem Exames'
),
'Matricula' => array(
'id' => '136247',
'codigo' => '',
'aluno_id' => '28065',
'curso_id' => '18',
'plano_estudo_id' => '91',
'data' => '2013-10-30',
'estado_matricula_id' => '1',
'modified' => '2015-08-31 06:55:53',
'created' => '2013-10-31 12:09:43',
'user_id' => '1',
'ano_lectivo_id' => '30',
'turno_id' => '1',
'nivel' => null,
'created_by' => '1',
'modified_by' => null,
'tipo_matricula_id' => '2',
'regime_lectivo_id' => null,
'financeiro_pagamento_id' => null,
'Aluno' => array(
'id' => '28065',
'codigo' => '20115466',
'user_id' => '28066',
'data_ingresso' => '1900-01-01',
'trabalhador' => null,
'area_trabalho_id' => null,
'instituicao_id' => null,
'curso_id' => '18',
'created' => '2011-03-02 14:15:30',
'modified' => '2015-08-31 06:55:52',
'entidade_id' => '28066',
'numero_estudante' => '20115466',
'aluno_via_admissao_id' => '13',
'numero_candidato' => null,
'ano_ingresso' => '2011',
'curso_ingresso_id' => '18',
'created_by' => null,
'modified_by' => null,
'nome_encarregado' => null,
'parentesco_encarregado' => null,
'telefone_encarregado' => null,
'telemovel_encarregado' => null,
'nome_emergencia' => null,
'telefone_emergencia' => null,
'telemovel_emergencia' => null,
'estado_aluno_id' => '1',
'plano_estudo_id' => '91',
'data_conclusao' => null,
'nota_conclusao' => null,
'certificado_nivel_anterior' => '1',
'recenseamento_militar' => '1',
'referencia_renovacao' => null,
'Entidade' => array(
'id' => '28066',
'name' => 'Elisa Luis Artur',
'nome_pai' => 'Luís Artur Vasco',
'nome_mae' => 'Jacinta António',
'foto' => '20115466.jpg',
'genero_id' => '2',
'pais_nascimento' => '152',
'cidade_morada' => null,
'bairro_morada' => null,
'caixa_postal_morada' => null,
'cidade_ferias' => null,
'cidade_nascimento' => '809',
'provincia_nascimento' => null,
'email' => '',
'telefone' => '',
'telemovel' => '825507722',
'documento_identificacao_id' => null,
'documento_identificacao_numero' => null,
'data_nascimento' => '1988-09-20',
'documento_identificacao_data_emissao' => null,
'estado_entidade_id' => null,
'created' => '2011-03-02 14:15:30',
'modified' => '2013-09-13 10:31:17',
'user_id' => '28066',
'documento_identificacao_local_emissao' => null,
'apelido' => 'Artur',
'nomes' => 'Elisa Luis ',
'created_by' => null,
'modified_by' => null,
'provincia_ferias' => null,
'telefone_ferias' => null,
'telemovel_ferias' => null,
'avenida_rua' => null,
'avenida_rua_ferias' => null,
'agregado_familiar_numero' => null,
'estado_civil' => '1',
'documento_identificacao_data_validade' => null,
'nacionalidade' => '1',
'codigo' => '41446',
'naturalidade' => null,
'nuit' => null,
'User' => array(
'password' => '*****',
'id' => '28066',
'username' => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="95f0f9fce6f4bbf4e7e1e0e7d5e0f0f8bbf4f6bbf8ef" rel="noreferrer noopener nofollow">[email protected]</a>',
'codigocartao' => '20115466',
'group_id' => '3',
'created_by' => null,
'modified_by' => null,
'ultimo_login' => null,
'codigo_activacao' => '1',
'estado_objecto_id' => '1',
'verificar_permissoes' => '0',
'created' => null,
'modified' => null,
'estado_email' => '0',
'timezone' => null,
'facebook_id' => null
)
)
)
)
),
(int) 1 => array(
'Inscricao' => array(
'id' => '92162',
'codigo' => null,
'aluno_id' => '28446',
'turma_id' => '14377',
'estado_inscricao_id' => '10',
'nota_frequencia' => '10.00',
'nota_final' => '9.75',
'epoca_avaliacao_id' => null,
'data' => '2014-02-11',
'created' => '2015-08-31 07:31:54',
'modified' => '2015-09-02 01:31:00',
'matricula_id' => '130681',
'created_by' => null,
'modified_by' => null,
'pagamento_id' => null,
'tipo_inscricao_id' => '1',
'nota_exame_normal' => '9.50',
'nota_exame_recorrencia' => null,
'estado_inscricao' => '2',
'turma_inscricao_id' => null,
'turma_frequencia_id' => '14377'
),
'Turma' => array(
'id' => '14377',
'ano_lectivo_id' => '30',
'curso_id' => '18',
'plano_estudo_id' => '91',
'turno_id' => null,
'disciplina_id' => '394',
'capacidade_maxima' => null,
'total_aprovados' => null,
'media_turma' => null,
'estado_turma_id' => '1',
'modified' => '2015-08-31 07:02:54',
'created' => '2015-08-31 07:02:54',
'total_reprovados' => null,
'codigo' => '2011',
'ano_curricular' => '2',
'semestre_curricular' => '2',
'name' => 'Sociologia do Desporto - 2014 - Licenciatura em Ciências do Desporto - 2011',
'semestre_lectivo_id' => '66',
'sala_aula_id' => null,
'sequencia' => null,
'peso_nota_frequencia' => null,
'peso_nota_exame' => null,
'nota_minima_frequencia' => null,
'nota_minima_dispensa' => null,
'created_by' => null,
'modified_by' => null,
'pauta_path' => null,
'total_alunos' => '44',
'AnoLectivo' => array(
'id' => '30',
'codigo' => '2014',
'ano' => '2014',
'num_semestre' => null,
'data_inicio' => null,
'data_fim' => null,
'created' => '2013-10-08 05:13:51',
'modified' => '2013-10-08 05:13:51',
'regime_lectivo_id' => null
),
'Curso' => array(
'name' => 'Licenciatura em Ciências do Desporto'
),
'Turno' => array(),
'Disciplina' => array(
'id' => '394',
'name' => 'Sociologia do Desporto',
'codigo' => 'SOD',
'codigo_antigo' => null,
'created' => '1432892405',
'modified' => '1432892405',
'created_by' => '54193',
'modified_by' => null,
'unidade_organica_id' => null
)
),
'EstadoInscricao' => array(
'id' => '10',
'name' => 'Reprovado'
),
'Matricula' => array(
'id' => '130681',
'codigo' => '',
'aluno_id' => '28446',
'curso_id' => '97',
'plano_estudo_id' => null,
'data' => '2013-10-17',
'estado_matricula_id' => '1',
'modified' => '2014-01-13 10:22:24',
'created' => '2013-10-17 11:18:10',
'user_id' => '1',
'ano_lectivo_id' => '30',
'turno_id' => '2',
'nivel' => null,
'created_by' => '1',
'modified_by' => null,
'tipo_matricula_id' => '2',
'regime_lectivo_id' => null,
'financeiro_pagamento_id' => null,
'Aluno' => array(
'id' => '28446',
'codigo' => '20116158',
'user_id' => '28447',
'data_ingresso' => '1900-01-01',
'trabalhador' => null,
'area_trabalho_id' => null,
'instituicao_id' => null,
'curso_id' => '97',
'created' => '2011-03-25 10:07:04',
'modified' => '2013-06-16 22:17:58',
'entidade_id' => '28447',
'numero_estudante' => '20116158',
'aluno_via_admissao_id' => '13',
'numero_candidato' => null,
'ano_ingresso' => '2012',
'curso_ingresso_id' => '18',
'created_by' => null,
'modified_by' => null,
'nome_encarregado' => null,
'parentesco_encarregado' => null,
'telefone_encarregado' => null,
'telemovel_encarregado' => null,
'nome_emergencia' => null,
'telefone_emergencia' => null,
'telemovel_emergencia' => null,
'estado_aluno_id' => '1',
'plano_estudo_id' => null,
'data_conclusao' => null,
'nota_conclusao' => null,
'certificado_nivel_anterior' => '1',
'recenseamento_militar' => '1',
'referencia_renovacao' => null,
'Entidade' => array(
'id' => '28447',
'name' => 'Paulo José Pelembe',
'nome_pai' => 'Mundau José Pelembe',
'nome_mae' => 'Rosa Fomo',
'foto' => '20116158.jpg',
'genero_id' => '1',
'pais_nascimento' => '152',
'cidade_morada' => null,
'bairro_morada' => null,
'caixa_postal_morada' => null,
'cidade_ferias' => null,
'cidade_nascimento' => '1101',
'provincia_nascimento' => null,
'email' => '',
'telefone' => '',
'telemovel' => '828352330',
'documento_identificacao_id' => null,
'documento_identificacao_numero' => null,
'data_nascimento' => '1976-12-17',
'documento_identificacao_data_emissao' => null,
'estado_entidade_id' => null,
'created' => '2011-03-25 10:07:03',
'modified' => '2013-09-13 10:37:47',
'user_id' => '28447',
'documento_identificacao_local_emissao' => null,
'apelido' => 'Pelembe',
'nomes' => 'Paulo José ',
'created_by' => null,
'modified_by' => null,
'provincia_ferias' => null,
'telefone_ferias' => null,
'telemovel_ferias' => null,
'avenida_rua' => null,
'avenida_rua_ferias' => null,
'agregado_familiar_numero' => null,
'estado_civil' => '1',
'documento_identificacao_data_validade' => null,
'nacionalidade' => '1',
'codigo' => '41832',
'naturalidade' => null,
'nuit' => null,
'User' => array(
'password' => '*****',
'id' => '28447',
'username' => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d9a9b8acb5b6f7a9bcb5bcb4bbbc99acbcb4f7b8baf7b4a3" rel="noreferrer noopener nofollow">[email protected]</a>',
'codigocartao' => '20116158',
'group_id' => '3',
'created_by' => null,
'modified_by' => null,
'ultimo_login' => null,
'codigo_activacao' => '1',
'estado_objecto_id' => '1',
'verificar_permissoes' => '0',
'created' => null,
'modified' => null,
'estado_email' => '0',
'timezone' => null,
'facebook_id' => null
)
)
)
)
),
(int) 2 => array(
'Inscricao' => array(
'id' => '92200',
'codigo' => null,
'aluno_id' => '28504',
'turma_id' => '14377',
'estado_inscricao_id' => '13',
'nota_frequencia' => '10.00',
'nota_final' => '10.25',
'epoca_avaliacao_id' => null,
'data' => '2014-02-10',
'created' => '2015-08-31 07:32:17',
'modified' => '2015-09-02 01:31:00',
'matricula_id' => '141228',
'created_by' => null,
'modified_by' => null,
'pagamento_id' => null,
'tipo_inscricao_id' => '1',
'nota_exame_normal' => '8.50',
'nota_exame_recorrencia' => '10.50',
'estado_inscricao' => '2',
'turma_inscricao_id' => null,
'turma_frequencia_id' => '14377'
),
'Turma' => array(
'id' => '14377',
'ano_lectivo_id' => '30',
'curso_id' => '18',
'plano_estudo_id' => '91',
'turno_id' => null,
'disciplina_id' => '394',
'capacidade_maxima' => null,
'total_aprovados' => null,
'media_turma' => null,
'estado_turma_id' => '1',
'modified' => '2015-08-31 07:02:54',
'created' => '2015-08-31 07:02:54',
'total_reprovados' => null,
'codigo' => '2011',
'ano_curricular' => '2',
'semestre_curricular' => '2',
'name' => 'Sociologia do Desporto - 2014 - Licenciatura em Ciências do Desporto - 2011',
'semestre_lectivo_id' => '66',
'sala_aula_id' => null,
'sequencia' => null,
'peso_nota_frequencia' => null,
'peso_nota_exame' => null,
'nota_minima_frequencia' => null,
'nota_minima_dispensa' => null,
'created_by' => null,
'modified_by' => null,
'pauta_path' => null,
'total_alunos' => '44',
'AnoLectivo' => array(
'id' => '30',
'codigo' => '2014',
'ano' => '2014',
'num_semestre' => null,
'data_inicio' => null,
'data_fim' => null,
'created' => '2013-10-08 05:13:51',
'modified' => '2013-10-08 05:13:51',
'regime_lectivo_id' => null
),
'Curso' => array(
'name' => 'Licenciatura em Ciências do Desporto'
),
'Turno' => array(),
'Disciplina' => array(
'id' => '394',
'name' => 'Sociologia do Desporto',
'codigo' => 'SOD',
'codigo_antigo' => null,
'created' => '1432892405',
'modified' => '1432892405',
'created_by' => '54193',
'modified_by' => null,
'unidade_organica_id' => null
)
),
'EstadoInscricao' => array(
'id' => '13',
'name' => 'Aprovado sem Exames'
),
'Matricula' => array(
'id' => '141228',
'codigo' => '',
'aluno_id' => '28504',
'curso_id' => '18',
'plano_estudo_id' => '91',
'data' => '2013-10-31',
'estado_matricula_id' => '1',
'modified' => '2015-08-31 06:56:21',
'created' => '2013-11-01 07:56:44',
'user_id' => '1',
'ano_lectivo_id' => '30',
'turno_id' => '1',
'nivel' => null,
'created_by' => '1',
'modified_by' => null,
'tipo_matricula_id' => '2',
'regime_lectivo_id' => null,
'financeiro_pagamento_id' => null,
'Aluno' => array(
'id' => '28504',
'codigo' => '20116434',
'user_id' => '28505',
'data_ingresso' => '1900-01-01',
'trabalhador' => null,
'area_trabalho_id' => null,
'instituicao_id' => null,
'curso_id' => '18',
'created' => '2011-03-28 12:12:43',
'modified' => '2015-08-31 06:56:21',
'entidade_id' => '28505',
'numero_estudante' => '20116434',
'aluno_via_admissao_id' => '13',
'numero_candidato' => null,
'ano_ingresso' => '2011',
'curso_ingresso_id' => '18',
'created_by' => null,
'modified_by' => null,
'nome_encarregado' => null,
'parentesco_encarregado' => null,
'telefone_encarregado' => null,
'telemovel_encarregado' => null,
'nome_emergencia' => null,
'telefone_emergencia' => null,
'telemovel_emergencia' => null,
'estado_aluno_id' => '1',
'plano_estudo_id' => '91',
'data_conclusao' => null,
'nota_conclusao' => null,
'certificado_nivel_anterior' => '1',
'recenseamento_militar' => '1',
'referencia_renovacao' => null,
'Entidade' => array(
'id' => '28505',
'name' => 'Lina Mário Matola',
'nome_pai' => 'Mário Augusto Matola',
'nome_mae' => 'Lina Albino Manjate',
'foto' => '20116434.jpg',
'genero_id' => '2',
'pais_nascimento' => '152',
'cidade_morada' => null,
'bairro_morada' => null,
'caixa_postal_morada' => null,
'cidade_ferias' => null,
'cidade_nascimento' => '1101',
'provincia_nascimento' => null,
'email' => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a4c8cdcac5c9c5d6cdcb9592e4ddc5cccbcb8ac7cbc98ac6d6" rel="noreferrer noopener nofollow">[email protected]</a> ',
'telefone' => '',
'telemovel' => '828322450',
'documento_identificacao_id' => null,
'documento_identificacao_numero' => null,
'data_nascimento' => '1988-04-13',
'documento_identificacao_data_emissao' => null,
'estado_entidade_id' => null,
'created' => '2011-03-28 12:12:42',
'modified' => '2013-09-13 10:38:41',
'user_id' => '28505',
'documento_identificacao_local_emissao' => null,
'apelido' => 'Matola',
'nomes' => 'Lina Mário',
'created_by' => null,
'modified_by' => null,
'provincia_ferias' => null,
'telefone_ferias' => null,
'telemovel_ferias' => null,
'avenida_rua' => null,
'avenida_rua_ferias' => null,
'agregado_familiar_numero' => null,
'estado_civil' => '1',
'documento_identificacao_data_validade' => null,
'nacionalidade' => '1',
'codigo' => '41891',
'naturalidade' => null,
'nuit' => null,
'User' => array(
'password' => '*****',
'id' => '28505',
'username' => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1cdc8cfc08fccc0d5cecdc0e1d4c4cc8fc0c28fccdb" rel="noreferrer noopener nofollow">[email protected]</a>',
'codigocartao' => '20116434',
'group_id' => '3',
'created_by' => null,
'modified_by' => null,
'ultimo_login' => null,
'codigo_activacao' => '1',
'estado_objecto_id' => '1',
'verificar_permissoes' => '0',
'created' => null,
'modified' => null,
'estado_email' => '0',
'timezone' => null,
'facebook_id' => null
)
)
)
)
),
(int) 3 => array(

我想根据键“apelido”对其进行排序。在 PHP 中执行此操作的最佳方法是什么?

注意:Key apelido 位于 [0]['Matricula']['Aluno']['Entidade']['apelido'] 中。

注 2:这是 CakePHP 与 Containable 查找的结果。有没有办法让 cake 在查找过程中对其进行排序?

最佳答案

使用Hash::sort(),它接受 Hash path syntax 中的路径格式,允许指定深层嵌套路径。

$sorted = Hash::sort($data, '{n}.Matricula.Aluno.Entidade.apelido');

其他参数定义排序顺序和排序类型,请参阅 Cookbook > Core Libraries > Utilities > Hash > Hash::sort() 了解更多信息。

如果您希望通过 find 调用返回排序结果,您可以在 Model::afterFind() 回调或自定义查找器中修改结果,请参阅

关于php - 如何根据非常深的键值对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32359610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com