0

ここでは、次の変数 $countries_all があります。

Array ( 
  [0] => stdClass Object 
      ( 
          [countries] => India,Afghanestan,Japan,South Africa
      ) 
  [1] => stdClass Object 
      ( 
          [countries] => Singapore,South Africa,India,Pakistan
      )
  [2] => stdClass Object 
      ( 
          [countries] => Japan,Australia,India
      ) 
)

しかし、一意の値のみを含む 2 番目の配列 $countries を作成する必要があります。

Array ( 
  [0] => stdClass Object 
      ( 
          [countries] => India
      )
  [1] => stdClass Object 
      ( 
          [countries] => Afghanestan
      )
  [2] => stdClass Object 
      ( 
          [countries] => Japan
      )
  [3] => stdClass Object 
      ( 
          [countries] => South Africa
      )
  [4] => stdClass Object 
      ( 
          [countries] => Singapore
      )
  [5] => stdClass Object 
      ( 
          [countries] => Pakistan
      )
  [6] => stdClass Object 
      ( 
          [countries] => Japan
      )
  [7] => stdClass Object 
      ( 
          [countries] => Australia
      ) 
)

(,) で分割するには、以下の方法を使用しました

foreach ($countries_all as $list){
    $countrieslist=explode(',', $list->countries);
    foreach ($countrieslist as $uni_countries){
        echo $uni_countries;
    }
}

上記のケースから、一意の値を取得する方法。

誰か私を助けてくれませんか

前もって感謝します。

編集1

ここで、上記の質問に関連するクエリがもう 1 つあります。

今、私はユニークな値を手に入れました、

その一意の値からデータベースから結果を取得するにはどうすればよいですか

たとえば、国が「インド」であるすべての結果が必要です

4

5 に答える 5

2

array_unique関数は、探しているものです。

$countries = array();
foreach ($countries_all as $list){
    $countrieslist=explode(',', $list->countries);
    foreach ($countrieslist as $country){
        $countries[] = $country;
    }
}
$countries = array_unique($countries);
于 2013-09-28T10:13:00.533 に答える
1
$newlist = array();
foreach ($countries_list as $list){
    $countrieslist=explode(',', $list->countries);
    foreach ($countrieslist as $uni_countries){
        echo $uni_countries;
        $newlist[] = $uni_countries){
    }
}
array_unique($newlist);
于 2013-09-28T10:12:12.247 に答える
1
$commasplit = function ($list) { return explode(',', $list->countries); };
$countrieslist = array_unique(call_user_func_array('array_merge', array_map($commasplit, $countries_list)));
于 2013-09-28T10:14:48.703 に答える
1

あなたはこれを試すことができます

$countrieslist = array();
foreach ($countries_all as $list){
    $countrieslist[] = explode(',', $list->countries);
}
$array = array_unique(array_reduce($countrieslist,'array_merge', array()));

例。

于 2013-09-28T10:19:36.183 に答える
0

これを試して:

$uniqueCountries = array();

foreach ($countries_list as $list){
    $countrieslist=explode(',', $list->countries);
    foreach ($countrieslist as $country){
        if (!in_array($country, $uniqueCountries)) {
            //adding to list
            $uniqueCountries[] = $country
        } else {
             echo $country, ' already in list', PHP_EOL;
        }
    }
}

$uniqueCoutries には、見つかったすべての国が重複なしで含まれます

于 2013-09-28T10:12:55.110 に答える