2011-06-12 42 views
0

我是較新的學習php。我在php facebook people search how to remove repeat value?array_unique中的問題

問了我的問題,但仍然有一些問題想好好理解。

這裏是數據示例。

https://graph.facebook.com/search?q=tom&type=user&access_token=2227470867|2.AQD2FG3bzBMEiDV3.3600.1307905200.0-100001799728875|LowLfLcqSZ9YKujFEpIrlFNVZPQ 

我想清除重複值。這裏是Tomalak Geret'kal的答案,謝謝他。它可以清除重複名稱。

$names = Array(); 

foreach ($status_list['data'] as $data) { 
    $names[] = $data['name']; 
} 

$names = array_unique($names); // not print the same name. 

foreach ($names as $name) { 
    echo $name; 
} 

因爲我仍然想回顯$id。我累了2法在這裏:

$names = Array(); 

foreach ($status_list['data'] as $data) { 
    $names[] = $data['name']; 
    $id[] = $data['id']; 
} 

$names = array_unique($names); // not print the same name. 

foreach ($names as $name) { 
    echo $name; 
    echo $id; // no result 
} 



$names = Array(); 

foreach ($status_list['data'] as $data) { 
    $names[] = $data['name']; 
} 

$names = array_unique($names); // not print the same name. 

foreach ($names as $name) { 
    echo $name; 
    echo $data['id']; // all the id is the last people. 
} 

如何做正確的方法?謝謝。

回答

0

試試這個:

$data = array_unique($status_list['data']); 

foreach ($data as $i) { 
    echo $i['name']; 
    echo $i['id']; 
} 

使用$names = array_unique($names);你只能把所有的名字數組$names英寸

編輯:嗯,我同意託默勒格Geret'kal,因爲它是沒有意義的呼應ID,但你可以嘗試以下方法:

foreach ($status_list['data'] as $data) { 
    $names[] = $data['name']; 
    $ids[] = $data['id']; 
} 

$names = array_unique($names); // not print the same name. 
$ids = array_unique($ids); // not print the same name. 

$i = 0 

foreach ($names as $name) { 
    echo $name; 
    echo $ids[$i]; 
    $i ++; 
} 
+0

'$ status_list ['data']'已經不包含dups。由於某種原因,OP由於某種原因想要摺疊數據集,以便每個名稱有一個條目,將該名稱的映射保留爲它所代表的ID的一部分。 (我拒絕爲它編寫代碼,因爲它沒有意義!) – 2011-06-12 18:47:44

+0

組成'+ 0'。我嘗試在'$ status_list ['data']'中添加'array_unique',但只是獲得第一個'name'和'id'。我想可能會將它們全部存儲到'array'中,然後執行下一步,但我更新,不知道該怎麼做。謝謝。 – 2011-06-12 18:52:35

+0

@fishman:不要投票給你因爲其他人低估他們而不理解的答案。 – 2011-06-12 18:58:54

2

這沒有任何意義。

您只有重複項,因爲您丟棄了除「名稱」之外的所有信息,這不是唯一字段。

當你把id字段(唯一的)進入畫面,你再也不用在結果任何重複。

所以,只寫:

foreach ($status_list['data'] as $data) { 
    echo $data['name'] . " " . $data['id'] . "\n"; 
} 
+0

正如我說的,我只是學習。請不要以爲真實的電臺。如果我想比較'name'不重複,則打印所有json項目數據,'name,id ...如果將有更多'。怎麼做? – 2011-06-12 18:44:25

+0

@fishman:我不明白你的評論,對不起。 – 2011-06-12 18:46:55

+0

不管,不要站在真實的情況下,而要站在技術上。如何判斷像這樣的foreach。比較一個部分不重複,然後打印這個dom中的所有數據。謝謝。 – 2011-06-12 18:50:13

0
$names = Array(); 
$names=array("0"=>1,"1"=>"1","2"=>"2","3"=>"2","4"=>"23"); //same value in array 

$names = array_unique($names); // not print the same name. 

foreach ($names as $name) { 
     echo "\n\r".$name; 
}