我有for cycle
并且在那里我从列表中创建了一个名称数组,我需要做的是删除重复值,然后我得到这个数组:
数组([0] => Tod [1] => Admin [2] => Tod)
$c=count($_SESSION['cart']);
$list_array = array();
for($i=0;$i<$c;$i++){
$id=$_SESSION['list'][$i]['id'];
$person=get_person($id);
$list_array[] = $person;
}
答案 0 :(得分:2)
使用array_unique
,它返回一个没有重复值的新数组。
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
<强>输出强>
Array
(
[a] => green
[0] => red
[1] => blue
)
但是,您需要将$list_array
移到for
循环的之外,并在您的条件中使用该数组,
$c=count($_SESSION['cart']);
// if this is in the loop, it will get overwritten
$list_array = array();
for($i=0;$i<$c;$i++){
$id=$_SESSION['list'][$i]['id'];
$person=get_person($id);
// originally, you had $users_array in in_array and array_push
if(!in_array($person, $list_array ))
$list_array[] = $person;
}
答案 1 :(得分:0)
in_array
检查字符串。与array_unique
相同 - 它不打算检查多维数组。所以修补程序将是
$person=get_person($id)[0];