已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 源码

标题: 多维数组问题求解

作者: @Ta

时间: 2013-01-31

点击: 3675

这是原数组:
array(
 0=>([m]=>a,[n]=>1),
 1=>([m]=>b,[n]=>2),
 2=>([m]=>a,[n]=>3),
 3=>([m]=>b,[n]=>4),
 4=>([m]=>c,[n]=>5)
)

这是目标数组:

array(
//子数组a中所含数组的[m]键值均为a
   a=>(
       0=>([m]=>a,[n]=>1),
       1=>([m]=>a,[n]=>3)
      )
//这是子数组b,条件和子数组a一样
   b=>(
       0=>([m]=>b,[n]=>2),
       1=>([m]=>b,[n]=>4) 
      )
   c=>(
       c=>([m]=>a,[n]=>5) 
      )
)求解,头晕了
@老虎会游泳 @大家
嗯,嗯,谢谢老虎了,已经解决了,原来这么简单,开始我老是想找一个可以比较键值的系统函数,,
看到老虎说用foreach()
我才恍然大悟,,,
看来以后不能过分依靠系统函数,,,
再次谢谢@老虎会游泳 <?php
$d=array(
 0=>array('m'=>'a','n'=>1),
 1=>array('m'=>'b','n'=>2),
 2=>array('m'=>'a','n'=>3),
 3=>array('m'=>'b','n'=>4),
 4=>array('m'=>'c','n'=>5) 
);
$f=array();
foreach($d as $u)
{
 $f[$u['m']][]=$u;
}
print_r($f);
?>

[隐藏样式|查看源码]


『回复列表(9|隐藏机器人聊天)』

2. @薰风习习
数组很有用,可碰到这样的比较键值的,看着就头疼,,
(/@Ta/2013-01-31 17:56//)

3. 楼主想干什么?你直拿出数组来,然后说求解,你究竟想要干什么?
(/@Ta/2013-01-31 17:59//)

5. @soar
array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )
将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。
http://www.php.net/manual/zh/function.array-chunk.php
(/@Ta/2013-01-31 18:35//)

6. 这是将原数组中的子数组,按照子数组的。键[m]的值是否相同来分类的
@老虎会游泳 @薰风习习 @自在鬼 
(/@Ta/2013-01-31 18:41//)

7. 还有array_combine:创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值。
查看
(/@Ta/2013-01-31 18:41//)

8. @soar
foreach 语法结构提供了遍历数组的简单方式。
foreach($array as $value) {
    ……
}
(/@Ta/2013-01-31 18:44//)

9. @soar
$array[]='a';
这将给$array添加一个新成员,key自动加1。
(/@Ta/2013-01-31 18:46//)

10. @soar
$array['a']['b'] 操作多维数组。
(/@Ta/2013-01-31 18:47//)

11. 这些信息(从foreach开始,前面不算)应该足够了。自己试试能否解决。
(/@Ta/2013-01-31 18:48//)

回复需要登录

9月27日 20:35 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1