gpt4 book ai didi

php - 删除 level 1 array search by value on level 2

转载 作者:搜寻专家 更新时间:2023-10-31 22:04:44 27 4
gpt4 key购买 nike

如何通过搜索数组(第 2 级)中的重复值来删除一行数组(第 1 级)?

$array = array(
0 => array('name' => 'haha1', 'dateline' => '2014-07-1 00:00:00', 'toid' => '1')
1 => array('name' => 'haha2', 'dateline' => '2014-07-1 00:00:00', 'toid' => '2')
2 => array('name' => 'haha3', 'dateline' => '2014-07-1 00:00:00', 'toid' => '1')
3 => array('name' => 'haha4', 'dateline' => '2014-07-1 00:00:00', 'toid' => '3')
);

删除行 $array[2] 因为 $array[2]['toid'] 与 $array[0]['toid'] 重复。保留 $array[0] 但删除 $array[2]

我像下面这样在 foreach 中尝试了 foreach,但我认为我以错误的方式使用了它们:

$container = array(); //The Container for none duplicated array

foreach($array as $key => $var){
foreach($container as $k => $v){
if(!array_search($var['toid'], $v['toid'])){
$container[] = $var;
}
}
}

另外一个问题:记录是从MySQL数据库中获取的,除了数组方式,MySQL中是否可以获取不重复的行?

是否可以使用 MySQL 查询来完成,哪种解决方案更快/更喜欢?

SQL 结构如下:

'id' => auto_increment, int(11)
'name' => varchar(255)
'dateline' => datetime,
'toid' => int(11)

如何按“日期线”获取所有不重复的“toid”字段行顺序?

最佳答案

尝试

$data=array();
for($i=0;$i<sizeof($array);$i++){
$tmp=array();
$data = array_unique(array_merge($data,$array[$i]));
}

现在重复的条目已被删除。现在创建一个多维数组

$output=array();
$tmp = &$output;
foreach($data as &$val){
if(strpos($val,'level') !==false ){
if (!is_array($tmp)){
$tmp = array();
}
$tmp = &$tmp[$val];

}else{
$tmp[] = $val;
}
}

echo "<pre>";
print_r($output);
exit();

关于php - 删除 level 1 array search by value on level 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20967627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com