1

例子: -

$arrayName = array(
  '0' => array('name' => 'a', 'id' => '123'  ),
  '1' =>  array('name' => 'b', 'id' => '123'  ), 
  '3' => array('name' => 'c', 'id' => '456'  ) 
);

应在此处分组相同的 Id 值

结果:

$arrayName = array(
  '0' => array(
    '0' =>  array('name' => 'a', 'id' => '123'  ),
    '1' => array('name' => 'b', 'id' => '123'  ) ), 
  '1' => array('1' => array('name' => 'c', 'id' => '456'  ) );
4

1 回答 1

2

使用您的示例集,您可以简单地遍历这些值,并根据 对数据进行分组id。使用类似的东西

$output = array();
foreach($arrayName as $data){
  $output[$data['id']][] = $data;
}

其输出将是:

数组(2){
  [123]=>
  数组(2){
    [0]=>
    数组(2){
      [“名称”]=>
      字符串(1)“一个”
      [“身份证”]=>
      字符串(3)“123”
    }
    [1]=>
    数组(2){
      [“名称”]=>
      字符串(1)“b”
      [“身份证”]=>
      字符串(3)“123”
    }
  }
  [456]=>
  数组(1){
    [0]=>
    数组(2){
      [“名称”]=>
      字符串(1)“c”
      [“身份证”]=>
      字符串(3)“456”
    }
  }
}

如果您真的不希望id成为键,只需从该关联数组中获取值。

$output = array_values($output)
数组(2){
  [0]=>
  数组(2){
    [0]=>
    数组(2){
      [“名称”]=>
      字符串(1)“一个”
      [“身份证”]=>
      字符串(3)“123”
    }
    [1]=>
    数组(2){
      [“名称”]=>
      字符串(1)“b”
      [“身份证”]=>
      字符串(3)“123”
    }
  }
  [1]=>
  数组(1){
    [0]=>
    数组(2){
      [“名称”]=>
      字符串(1)“c”
      [“身份证”]=>
      字符串(3)“456”
    }
  }
}

注意:可能有更好的方法来做到这一点,使用其他一些数组函数;但是,这显示了基本逻辑。

于 2012-11-17T05:09:23.827 回答