2012-05-03 87 views
1

我有一個數組包含Facebook上的用戶的朋友列表。動態排序和顯示PHP數組

我必須顯示該列表並在列表頂部提供一個文本字段,以輸入任何他/她的朋友姓名的第一個字母。當用戶在文本字段中輸入一個字母時,程序應該只顯示以輸入的字母開頭的名稱,所有其他名稱應該消失。

此外,名稱應按字母順序排序。

我該如何執行此任務?

+0

的方法有很多,可以將所有通過JavaScript這樣做,或者你可以使用PHP這樣做...或兩個..的JavaScript + PHP(+ AJAX)。告訴我們更多,你嘗試了什麼? – miro

+0

你的意思是自動完成?你是否希望使用ajax來執行此操作?或純粹的PHP? – sree

+0

無論您使用哪種語言,這都是REGEX的工作! – 2012-05-03 18:26:04

回答

1

首先,我不得不問的是你使用JavaScript或任何東西來過濾,或者它只是服務器端代碼使用PHP?

除此之外,這裏的步驟,我將如何做只是在PHP方面。

1)對所有用戶的朋友的整個列表進行排序,以使整個數組有序。看看這個http://www.php.net/manual/en/function.sort.php

2)當用戶輸入他們的單個字母,你根本就必須:

  • 創建一個新的陣列通過你的大陣的各界朋友來存儲用戶的搜索
  • 循環的結果並將匹配插入到較小的陣列中
  • 顯示小陣列,因爲它已經按照已經排序的主列表進行排序。

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

我試過了。但是,如何從該文本字段提取數據而不將其作爲表單提交。當時,當用戶在文本字段中輸入字母時,程序應立即顯示這些名稱,而不必按任何按鈕等。我認爲您可以理解我的問題。如果沒有,請閱讀我的問題。謝謝:) – qurban

+1

你可以通過JavaScript將它通過一個onchange事件使用ajax發送到服務器端。當用戶按下某個鍵時,onchange事件應該會觸發,您可以將更新的文本字段數據發送到您的php代碼。 – jeschafe

1

然而,你這樣做,你可能會需要一些Ajax。除非你只是在客戶端對列表進行排序和過濾。已經有一個名爲Datatables的表格數據庫會爲你做這件事。