私は配列$ near_byを持っています。同じ値を持つ配列要素を削除するにはどうすればよいですか?
Array
(
[0] => Array
(
[user_id] => 10
[fname] => Test
[lname] =>
[image] => http://link//2.jpg
[category_id] => 2
[category_name_en] => Clinic
[category_name_ar] =>
[institute_rank] => 1
[institute_rating] => 4.00
[institute_review] => 1
[total_institute] => 8
[latitude] => 44.000984
[longitude] => 106.76654
)
[1] => Array
(
[user_id] => 10
[fname] => Test
[lname] =>
[image] => http://link//2.jpg
[category_id] => 2
[category_name_en] => Clinic
[category_name_ar] =>
[institute_rank] => 1
[institute_rating] => 4.00
[institute_review] => 1
[total_institute] => 8
[latitude] => 44.000984
[longitude] => 106.76654
)
)
最初の質問: - - :
私は重複要素を削除したい構造は次のようです。 0番目の要素と1番目の要素と同じですので、重複した値から1つだけ新しい配列を作成します。
だから私は、コードのこの作品を書いた: -
$near_by_arr = array_map("unserialize", array_unique(array_map("serialize", $near_by),SORT_REGULAR));
$near_by_final = array();
foreach($near_by_arr as $a)
{
$near_by_final[] = $a;
}
しかし、新しい配列$ near_by_finalはまだ重複データが含まれています。私は別のアプリケーションでこの同じコードを使用しており、そこで動作しているようです。今何してるの?
2番目の質問?
各インデックスのサブアレイは完全に構造が異なりますが、同じ値を含む可能性のある共通のインデックス "user_id"を持つとします。同じuser_id値を持つ要素から1つの要素のみを取得するにはどうすればよいですか?
セイ例えば、
Array
(
[0] => Array
(
[user_id] => 10
[fname_en] => Test
[lname_en] =>
[image] => http://link//2.jpg
[category_id] => 2
[category_name_en] => Clinic
[category_name_ar] =>
[latitude] => 44.000984
[longitude] => 106.76654
)
[1] => Array
(
[user_id] => 10
[fname] => Test
[lname] =>
[image] => http://link//2.jpg
[category_id] => 2
[category_name_en] => Clinic
[category_name_ar] =>
[institute_rank] => 1
[institute_rating] => 4.00
[institute_review] => 1
[total_institute] => 8
[latitude] => 44.000984
[longitude] => 106.76654
)
)
がどのように私は次のような構造を持つことになり、配列を持つことができますか?それはどのような方法をインデックス化する必要がある場合
$near_by_arr = array_map("unserialize", array_unique(array_map("serialize", $near_by),SORT_REGULAR));
$near_by_final = array();
foreach($near_by_arr as $a) {
$near_by_final[$a['user_id']] = $a;
/*
OR to keep only first entry:
if (!isset($near_by_final[$a['user_id']])) {
$near_by_final[$a['user_id']] = $a;
}
*/
}
:配列ではなく、インデックス付きの連想配列を使用して作成するときに
Array
(
[0] => Array
(
[user_id] => 10
[fname_en] => Test
[lname_en] =>
[image] => http://link//2.jpg
[category_id] => 2
[category_name_en] => Clinic
[category_name_ar] =>
[latitude] => 44.000984
[longitude] => 106.76654
)
)
* "緊急の助けが必要" * - それを削除してください。 –
* "2番目の質問?" * - それはあなたの質問を広すぎました。一度に1つの質問をしてください、それはスタック上で動作する方法です。 –
[もっと速い回答を得るために、どのような状況で私の質問に「緊急」や他の類似のフレーズを追加することができますか?](// meta.stackoverflow.com/q/326569) - 要約は、これはボランティアに対処する理想的な方法であり、おそらく回答を得ることは非生産的です。これはあなたの質問に追加することを控えてください(特にあなたが経験豊富なユーザーであり、これを知っていることが期待されるため)。 – halfer