Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除重复的元素_Php_Arrays - Fatal编程技术网

Php 删除重复的元素

Php 删除重复的元素,php,arrays,Php,Arrays,我为cycle创建了,在那里我从列表中创建了一个名称数组,我需要做的是删除重复的值,然后我得到这个数组: 数组([0]=>Tod[1]=>Admin[2]=>Tod) $c=count($\u会话['cart']); $list_array=array(); 对于($i=0;$i使用,它返回一个没有重复值的新数组 $input = array("a" => "green", "red", "b" => "green", "blue", "red"); $result = array_

我为cycle创建了
,在那里我从列表中创建了一个名称数组,我需要做的是删除重复的值,然后我得到这个数组:

数组([0]=>Tod[1]=>Admin[2]=>Tod)

$c=count($\u会话['cart']);
$list_array=array();
对于($i=0;$i使用,它返回一个没有重复值的新数组

$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
输出

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

但是,您需要将
$list\u数组
移动到
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;

}
$c=count($\u会话['cart']);
//如果这在循环中,它将被覆盖
$list_array=array();

for($i=0;$i
在数组中
在传递数组时检查字符串。与
数组
相同,它不用于检查多维数组。因此,热修复程序

$person=get_person($id)[0];

另外请参考:我以前尝试过使用此选项,但仍然会得到重复的值如果我添加[0]我只得到名称的第一个字母我刚刚意识到你的错误..我们的零件有很大的疏忽。如果我在尝试打印时将
$names\u array=array();
移出for循环,我会得到这个:array()这会导致一个错误。..get_person是一个使用mysql查询的简单函数,然后循环收集ar结果。
函数get_person($id){$result=mysql_查询(“从列表中选择人,其中id=$id”);mysql_set_字符集(“UTF8”);$row=mysql_fetch_数组($result);返回$row['person'];}
返回$row['person'][0];
然后呢?我的意思是,如果你的$person被推到
数组([0]=>Tod)
那么很明显,你不能期望一个列表被清理和检查正确。正如我上面提到的,我也只得到了名字的第一个字母。这太糟糕了……:/
$person=get_person($id)[0];