菜菜问题:PHP数组的获取,请求算法

天南海北 发布于 2012/04/20 12:00
阅读 454
收藏 2
PHP
<?php
$arrItem = array(
Array ('code'=>10000,'name'=>'中国','s'=>1),
Array ('code'=>30000,'name'=>'法国','s'=>50),
Array ('code'=>30000,'name'=>'法国','s'=>100),
Array ('code'=>10000,'name'=>'中国','s'=>3),
Array ('code'=>20000,'name'=>'美国','s'=>2),
Array ('code'=>30000,'name'=>'法国','s'=>5)
);

 

本来是如上数组,我想得到:
$arr = array(
    Array ('code'=>10000,'name'=>'中国'),
    Array ('code'=>20000,'name'=>'美国'),
    Array ('code'=>30000,'name'=>'法国')
);

一时摸不着头绪,求各位提供办法,谢谢了!

加载中
1
帖子列表
帖子列表
$tmp = array_unique(array_map(function($arr){
  return serialize(array_slice($arr, 0, 2));
}, $arrItem));

print_r(array_map(function($v){return unserialize($v);}, $tmp));

0
leo108
leo108

$arr = array()
foreach($arrItem as $value)
{
    $tmp = array();
    $tmp['code'] = $value['code'];
    $tmp['name'] = $value['name'];
    $arr[] = $tmp;
}

0
lyx0911
lyx0911
$new_arr = array();
foreach($arrItem as $key=>$val){
    $new_arr[$val['code']]['code'] = $val['code'];
    $new_arr[$val['code']]['name'] = $val['name'];
}

0
皮总
皮总
何苦自己写, 好像有个  array_pop()  你应该研究一下
0
yak
yak
function nos(&$v){
 unset($v['s']);
}
array_walk($arrItem, 'nos');



0
天南海北
天南海北

多谢各位相助,怪我没说清楚。是说各个列项之间不能重复哦,

是要
Array ('code'=>10000,'name'=>'中国'),
    Array ('code'=>20000,'name'=>'美国'),
    Array ('code'=>30000,'name'=>'法国')

 

而不是

Array ('code'=>10000,'name'=>'中国'),
Array ('code'=>10000,'name'=>'中国'),
    Array ('code'=>20000,'name'=>'美国'),
    Array ('code'=>30000,'name'=>'法国')
Array ('code'=>30000,'name'=>'法国')
Array ('code'=>30000,'name'=>'法国')

0
F
Forstmoune

这个不难

给个提示:用array_flip()解决

0
YIPU
YIPU
<?php
$arrItem = array(
Array ('code'=>10000,'name'=>'中国','s'=>1),
Array ('code'=>30000,'name'=>'法国','s'=>50),
Array ('code'=>30000,'name'=>'法国','s'=>100),
Array ('code'=>10000,'name'=>'中国','s'=>3),
Array ('code'=>20000,'name'=>'美国','s'=>2),
Array ('code'=>30000,'name'=>'法国','s'=>5)
); 

$arr = array();
foreach($arrItem as $value){
    array_pop($value);
    $arr[] = $value;
}
foreach($arr as $va){
    $row[]=implode('',$va);	
}
$rows=array_unique($row);
foreach($rows as $v){
	$arr1[]=explode(' ',$v);
}
print_r($arr1); 

?>

0
d
deer
$arrItem = array(
    array ('code'=>10000,'name'=>'中国','s'=>1),
    array ('code'=>30000,'name'=>'法国','s'=>50),
    array ('code'=>30000,'name'=>'法国','s'=>100),
    array ('code'=>10000,'name'=>'中国','s'=>3),
    array ('code'=>20000,'name'=>'美国','s'=>2),
    array ('code'=>30000,'name'=>'法国','s'=>5)
);
$new = array();
foreach($arrItem as $v)
{
    unset($v['s']);
    if( isset($new[$v['code']])==false )
    {
        $new[$v['code']] = $v;
    }
}
var_dump($new);
0
w
winde
$new = array(); 
foreach($arrItem as $v) 
{ 
    unset($v['s']); 
    if(!in_array($v, $new)) 
         $new[] = $v;
}
返回顶部
顶部