/ / eliminar la búsqueda de matriz de nivel 1 por valor en el nivel 2 - php, mysql, matrices

eliminar la búsqueda de matriz de nivel 1 por valor en el nivel 2: php, mysql, matrices

¿Cómo puedo eliminar una fila de matriz (Nivel 1) buscando el valor duplicado en matriz (Nivel 2)?

$array = array(
0 => array("name" => "haha1", "dateline" => "2014-07-1 00:00:00", "toid" => "1")
1 => array("name" => "haha2", "dateline" => "2014-07-1 00:00:00", "toid" => "2")
2 => array("name" => "haha3", "dateline" => "2014-07-1 00:00:00", "toid" => "1")
3 => array("name" => "haha4", "dateline" => "2014-07-1 00:00:00", "toid" => "3")
);

eliminar la fila $ array [2] debido a $ array [2] ["toid"] se duplica a $ array [0] ["toid"]. conserva $ array [0] pero elimina $ array [2]

Intenté foreach in inside foreach como lo siguiente, pero creo que los he usado de manera incorrecta:

$container = array(); //The Container for none duplicated array

foreach($array as $key => $var){
foreach($container as $k => $v){
if(!array_search($var["toid"], $v["toid"])){
$container[] = $var;
}
}
}

Otra pregunta: ¿el registro se puede obtener de la base de datos MySQL, aparte de la forma de matriz, es posible obtener ninguna fila duplicada en MySQL?

¿Es posible hacerlo utilizando una consulta de MySQL y cuál es la solución más rápida / preferible?

El SQL está estructurado de la siguiente manera:

"id" => auto_increment, int(11)
"name" => varchar(255)
"dateline" => datetime,
"toid" => int(11)

¿Cómo puedo obtener todo el orden de fila de campo "toid" no duplicado por la "línea de datos"?

Respuestas

0 para la respuesta № 1

Tratar

$data=array();
for($i=0;$i<sizeof($array);$i++){
$tmp=array();
$data =  array_unique(array_merge($data,$array[$i]));
}

Ahora se han eliminado las entradas duplicadas. Ahora crea una matriz multidimensional

$output=array();
$tmp = &$output;
foreach($data as &$val){
if(strpos($val,"level") !==false ){
if (!is_array($tmp)){
$tmp = array();
}
$tmp = &$tmp[$val];

}else{
$tmp[] = $val;
}
}

echo "<pre>";
print_r($output);
exit();