1 votos

Crear un Array con PHP

Estoy haciendo un array con php, pero solo coge un dato:

<?php
    $users=array();
    do {
            $users[]=$row_GetMessage["id_user"];
    }while ($row_GetMessage = mysql_fetch_assoc($GetMessage));

    $users=array_unique($users);
    print_r($users);
?>

Pero no solo quiero añadir el id del usuario también quiero que se añada al array el mensaje para que me bote algo así:

$users= [ "id_user" => "5", "mensaje" => "hola", ];

y así consecutivamente con los resultados y que el array_unique($users) solo sea para los id de usuarios, mas no para los mensajes

0 votos

Que haya un sólo igual (=) en la condición del while me parece raro. Eso significa, "mientras se lo pueda asignar".

3voto

Miguel Sirna Puntos 495

Ya lo resolví acá les dejo como:

<?php
    $users=array();

    do {
        $users[]=array(
                'id'=>$row_GetMessage["id_user"],
                'message'=>$row_GetMessage['message'],
                );

    }while ($row_GetMessage = mysql_fetch_assoc($GetMessage));

    function super_unique($array,$key){
        $temp_array = array();
        foreach ($array as &$v) {
            if (!isset($temp_array[$v[$key]]))
            $temp_array[$v[$key]] =& $v;
        }
        $array = array_values($temp_array);
        return $array;
    }

    print_r(super_unique($users,'id'));
?>

0 votos

Ah, el código original no daba errores, nada más había que ampliar el script.

1 votos

Te recomiendo cambiar mysql_fetch_assoc por mysqli_fetch_assoc (le agrega una i)

0voto

ArtEze Puntos 285

Yo pondría un booleano en la condición del while, se entiende más.

Edit: Por la falta de los punto y coma pueden dar errores (corregido).

<?php
    $booleano = true;
    $users = array();
    while ($booleano == true)
    {
        $row_GetMessage = mysql_fetch_assoc($GetMessage);
        $users[] = $row_GetMessage["id_user"];
        $booleano = $row_GetMessage != undefined;
    }
    $users=array_unique($users);
    print_r($users);
?>

0voto

ArtEze Puntos 285

http://php.net/manual/es/function.mysql-fetch-assoc.php

mysql_fetch_assoc

Advertencia: Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL.

http://php.net/manual/es/mysqli-result.fetch-all.php

mysqli_result::fetch_all

Obtener todas las filas en un array asociativo, numérico, o en ambos

1 votos

Me vota este error: Parse error: syntax error, unexpected '$users' (T_VARIABLE) in /home4/sirna/public_html/globalhomeperu/include/inbox.php on line 53

0 votos

En StackOverflow ese error se solucionó poniendo correctamente los punto y coma (;).

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: