2011-06-12 6 views
0

私は新しいスタジオPHPです。私は質問をしましたphp facebook people search how to remove repeat value?question in array_unique

しかし、まだいくつかの問題がよく分かっています。

ここはデータの例です。

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

繰り返し値をクリアします。ここにTomalak Geret'kalの答えフォームがあります。彼に感謝します。繰り返し名をクリアすることができます。

私はまだエコーしたい$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

はこれを試してみてください。

EDIT:さて、私はそれがIDをエコーし​​ても意味がありませんが、あなたは次のことを試みることができる原因、Tomalak Geret'kalに同意:

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']'はすでにダンプを含んでいません。 OPは何らかの理由でデータセットを折りたたんで、名前ごとに1つのエントリがあり、その名前からそれが表すIDの_one_にマップを維持したいと考えています。 (そして、意味がないのでコードを書くことを拒否します!) –

+0

は '+ 0'になります。 '$ status_list ['data']'に 'array_unique'を追加しようとしましたが、最初の' name'と 'id'を取得しました。私はそれらをすべて '配列'に格納して、次のステップを実行するかもしれないと思うが、私は新しい方法で、やり方を知らない。ありがとう。 –

+0

@fishman:誰か他の人が投票してしまっただけなので、あなたが理解できない回答には投票しないでください。 –

2

これは意味をなさない。

「名前」以外のすべての情報(一意のフィールドではない)を破棄したため、重複していました。

idフィールド(である)をピクチャに持ち込むと、結果に重複はなくなります。

だから、単に書く:あなたが唯一の配列$namesですべての名前を入れ$names = array_unique($names);を使用することにより

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

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

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

私が言うように、私はちょうど研究のために。 plsは実際の駅を考えていない。 'name'を繰り返す必要がない場合は、すべてのjson項目データ、' name、id ...があれば 'moreを出力します。実行する方法? –

+0

@fishman:あなたのコメントは分かりませんでした。 –

+0

問題ではありませんが、実際の状況に立ってはいけませんが、技術的に立ってください。このようにforeachで判断する方法。 1つの部分が繰り返しでないと比較し、このdomのすべてのデータを印刷します。ありがとう。 –

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; 
}