function remove_values($arr){
    $_a = array();
    while(list($key,$val) = each($arr)){
        $_a[$val] = 1;
    }
    return array_keys($_a);
}
私は上記の機能をうまくフォローできません.私は誰が私にそれを説明することができるかの影響がわからない  $_a[$val] = 1;  .ありがとう
function remove_values($arr){
    $_a = array();
    while(list($key,$val) = each($arr)){
        $_a[$val] = 1;
    }
    return array_keys($_a);
}
私は上記の機能をうまくフォローできません.私は誰が私にそれを説明することができるかの影響がわからない  $_a[$val] = 1;  .ありがとう
機能の目的のために、なぜ単に使用しないのarray_unique($array)ですか?
このような
function remove_values($arr){
    return array_keys(array_unique($arr));
}
わかりました、あなたは学ぼうとしているので。これが投稿の機能の説明です
function remove_values($arr){
    $_a = array(); //Creates a temporary array to store matching
    while(list($key,$val) = each($arr)){ //till their is item is array, loop it 
        $_a[$val] = 1; //Store in the temporary array with array's values as index, thus eliminating the duplicates
           //^ Here storing with the value as index IS THE KEY
    }
    return array_keys($_a); //return only the keys, which in fact are the unique values
}
実はとても素敵な機能です。
$_a[$val] = 1;
すべての要素が一度署名されるようにするので、重複が削除されることを意味する一度返されます。array_keys($ _ a)関数よりも、配列を再構築して並べ替えます。私はそれが好き。
これは、値を配列のキーに挿入することだけです。すべてのキーは配列内で一意であるため、すべての重複を削除します。
array_keys()その配列を通常の形式で返すだけです。
例:
$arr = array('red', 'green', 'red');
$arr = remove_values($arr);
与える
array( 'red' => 1,
       'green' => 1);
その結果、
array('red', 'green');
「赤」は一度だけキー値になることができるからです。
値部分に値1を割り当てます。例:
<?php
function remove_values($arr){
    $_a = array();
    while(list($key,$val) = each($arr)){
        $_a[$val] = 1;
    }
    print_r($_a);
    return array_keys($_a);
}
$arr = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
$sed = remove_values($arr);
print_r($sed);
?>
2 つの配列値を返します。
Array
(
    [apple] => 1
    [banana] => 1
    [cranberry] => 1
)
Array
(
    [0] => apple
    [1] => banana
    [2] => cranberry
)
これで、値「1」の効果を簡単に理解できます。