Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

221
Visualizações
Cómo eliminar una matriz de valor clave duplicada en una matriz multidimensional

Tengo esta matriz. Quiero eliminar la matriz si su valor es el mismo que el de los demás.

 $appointments = array( array('1','Monday', '5:30 PM'), array('2','Friday', '6:00 PM'), array('3','Monday', '5:30 PM'), array('4','Tuesday', '4:15 PM'), array('5','Wednesday', '8:30 PM'), array('6','Thursday', '1:45 PM') );

Quiero este resultado el lunes y la hora se muestra dos veces, así que tengo que mostrar solo una vez. Uso el siguiente código para esto, así que proporcione una mejor solución para esto.

 $one_dimension = array_map('serialize', $appointments); $unique_one_dimension = array_unique($one_dimension); $unique_multi_dimension = array_map('unserialize', $unique_one_dimension); echo "<pre>";print_r($unique_multi_dimension);
about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Demostración de código PHP

 <?php $appointments = array( array('1','Monday', '5:30 PM'), array('2','Friday', '6:00 PM'), array('3','Monday', '5:30 PM'), array('4','Tuesday', '4:15 PM'), array('5','Wednesday', '8:30 PM'), array('6','Thursday', '1:45 PM') ); //Here we are finding column of week days. $implodedColumns= array_map(function($data){ unset($data[0]); return implode(",", array_map('trim', $data)); }, $appointments); $result=array_unique($implodedColumns); array_walk($result, function(&$value,$key){ $value= array_merge(array($key), explode(",", $value)); }); print_r($result);

Producción:

 Array ( [0] => Array ( [0] => 0 [1] => Monday [2] => 5:30 PM ) [1] => Array ( [0] => 1 [1] => Friday [2] => 6:00 PM ) [3] => Array ( [0] => 3 [1] => Tuesday [2] => 4:15 PM ) [4] => Array ( [0] => 4 [1] => Wednesday [2] => 8:30 PM ) [5] => Array ( [0] => 5 [1] => Thursday [2] => 1:45 PM ) )
about 4 years ago · Santiago Trujillo Relatório

0

$one_dimension = array_map('serialize', $appointments); $unique_one_dimension = array_unique($one_dimension); $unique_multi_dimension[1] = array_map('unserialize', $unique_one_dimension); echo "<pre>";print_r($unique_multi_dimension);die;
about 4 years ago · Santiago Trujillo Relatório

0

Solución de clonación genérica O(n^2) estándar:

 function array_unique_callback($array, $equalityComparer) { $uniqueFiltered = []; $keys = array_keys($array); for ($i = 0;$i < count($array);$i++) { $add = true; for ($j = 0;$j < $i;$j++) { if ($equalityComparer($array[$keys[$i]], $array[$keys[$j]])) { $add = false; break; } } if ($add) { $uniqueFiltered[] = $array[$keys[$i]]; } } return $uniqueFiltered; } array_unique_callback($appointments, function ($x,$y) { return $x[1] == $y[1] && $x[2] == $y[2]; });

Ejemplo: http://sandbox.onlinephpfunctions.com/code/8013c36b78d24f08651b05375d686c9e07c75a49

Si quieres una versión más optimizada:

 function array_unique_callback($array, $comparer) { //Comparer is not an equality comparer, it returns negative if $x less than $y, 0 if they are equal and 1 if $x greater than $y $keys = array_keys($array); uasort($array, $comparer); $uniqueFiltered = []; for ($i = 0;$i < count($array);$i++) { $uniqueFiltered[$keys[$i]] = $array[$keys[$i]]; while ($i < count($array) && $comparer($array[$keys[$i]],$array[$keys[$i+1]]) === 0) { $i++; } } return $uniqueFiltered; }

Sin embargo, la segunda versión necesita que decidas una forma de comparar y ordenar cada elemento (lo que no siempre es posible).

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda