10
回答
菜菜问题:PHP数组的获取,请求算法
【腾讯云】学生服务器套餐10元/月 >>>   
<?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'=>'法国')
);

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

PHP
举报
天南海北
发帖于6年前 10回/452阅
共有10个答案 最后回答: 5年前
$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));

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

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

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

是要
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'=>'法国')

<?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); 

?>

$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);
顶部