Ordenar y mostrar dinámicamente la matriz de PHP

Tengo una matriz que contiene la lista de amigos de un usuario en Facebook.

Tengo que mostrar esa lista y proporcionar un campo de texto en la parte superior de la lista para ingresar la primera letra del nombre de cualquiera de sus amigos. Cuando el usuario ingresa una letra en el campo de texto, el programa debe mostrar solo los nombres que comienzan con la letra ingresada, todos los demás nombres deben desaparecer.

Además, los nombres deben estar ordenados alfabéticamente.

¿Cómo realizo esta tarea?

preguntado el 03 de mayo de 12 a las 19:05

hay muchas maneras, puede hacer todo esto a través de javascript, o puede hacerlo usando php... o ambos... javascript + php (+ ajax). cuéntanos más, ¿qué intentaste? -

te refieres al autocompletar? ¿Desea realizar esto usando ajax? o puramente php? -

¡Este es un trabajo para REGEX sin importar el idioma que use! -

@MireSVK Usé PHP para mostrar la lista de amigos. La lista de amigos se almacena en una matriz de PHP y la estoy mostrando usando un formulario HTML. Ahora, lo que necesito es que cuando el usuario ingrese una letra en el campo de texto, el programa debería funcionar como mencioné en la pregunta anterior. por favor dime que evento debo agregar con el campo de texto para obtener la letra ingresada e inmediatamente mostrar los nombres sin presionar ningún botón, etc. Cada nombre en la lista de amigos sigue una casilla de verificación, el usuario puede seleccionar varios nombres. -

@sree En el autocompletador, si es posible seleccionar varios nombres a la vez, entonces tiene razón. Necesito lo mismo. -

2 Respuestas

Primero, tengo que preguntar: ¿está usando javascript o algo para filtrar o es solo un código del lado del servidor que usa php?

Aparte de eso, aquí están los pasos de cómo lo haría solo en el lado de php.

1) Ordene la lista completa de todos los amigos del usuario para que la matriz completa esté en orden. Mira esto http://www.php.net/manual/en/function.sort.php.

2) Cuando el usuario ingresa su letra única, simplemente tiene que:

  • Crear una nueva matriz para almacenar los resultados de la búsqueda del usuario
  • Recorra su gran variedad de todos los amigos e inserte las coincidencias en la matriz más pequeña
  • Muestre la matriz pequeña como ya se ordenará de tener la lista maestra ya ordenada.

    for ($i = 1; $i <= $masterFriendsList.length; $i++) {
        if (substr($masterFriendsList[i],0,1)==$yourMatchValue){
            $filteredArray[]=$masterFriendsList[i];
        }
    }
    

contestado el 03 de mayo de 12 a las 19:05

Intenté esto. Pero, ¿cómo extraer datos de ese campo de texto sin enviarlo como un formulario? En ese momento, cuando el usuario ingresa una letra en el campo de texto, el programa debe mostrar inmediatamente esos nombres, sin presionar ningún botón, etc. Creo que puedes entender mi problema. si no, por favor lea mi pregunta. Gracias :) - qurban

Simplemente puede enviarlo a través de javascript al lado del servidor usando ajax con un evento onchange. Cuando el usuario presiona una tecla, el evento onchange debe activarse y puede enviar los datos del campo de texto actualizado a su código php. - jeschafe

Independientemente de cómo hagas esto, probablemente necesitarás algo de ajax. A menos que solo ordene y filtre la lista en el lado del cliente. Ya existe una biblioteca para datos tabulares llamada Tablas de datos hará esto por ti.

contestado el 03 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.