function remove_values($arr){
$_a = array();
while(list($key,$val) = each($arr)){
$_a[$val] = 1;
}
return array_keys($_a);
}
我不能很好地遵循上述功能。我不知道$_a[$val] = 1;
有什么效果可以解释给我谢谢
答案 0 :(得分:2)
出于功能的目的,为什么不使用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
}
答案 1 :(得分:0)
实际上非常好的功能。
$_a[$val] = 1;
使每个元素都被签名一次,因此返回一次意味着删除了重复项。比array_keys($ _ a)函数重建和排序数组。我喜欢它。
答案 2 :(得分:0)
这一切都是将值插入数组的键中。由于所有键在数组中都是唯一的,因此您将删除所有重复项。
array_keys()
简单地以普通形式回馈该数组。
示例:
$arr = array('red', 'green', 'red');
$arr = remove_values($arr);
给出
array( 'red' => 1,
'green' => 1);
导致
array('red', 'green');
因为“红色”只能是一次关键值。
答案 3 :(得分:0)
将值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);
?>
它返回两个数组值:
Array
(
[apple] => 1
[banana] => 1
[cranberry] => 1
)
Array
(
[0] => apple
[1] => banana
[2] => cranberry
)
现在很容易理解值'1'的效果。