论坛首页 编程语言技术论坛

php 数组转换为一维,不要用循环

浏览 4102 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-04-11  
PHP

Array
(
    [0] => Array
        (
            [cat_id] => 9
        )
    [1] => Array
        (
            [cat_id] => 42
        )
)
如何通过库函数将上面数组变成下面这个样子,不要用循环
Array
(
    [0] => 9
    [1] => 42
)
 
   发表时间:2012-04-15  
<?php
//>=php5.3
$data =array(
    0=> array(  
            'cat_id' => 9  
        ) , 
    1=> array(  
            'cat_id' => 42  
        )
);

$d = array_map(function($row){ return $row['cat_id']; }   ,  $data );
print_r($d);
?>
1 请登录后投票
   发表时间:2012-04-28  
不要用循环?
面试题?
0 请登录后投票
   发表时间:2012-04-29   最后修改:2012-04-29
<?php
$A=Array  (  
	Array  (  'cat_id' => 9  ),
	Array  (  'cat_id' => 42  )  
);
$a=array();
$str=str_repeat('$b=array_shift($A);$a[]=$b["cat_id"];',count($A));
eval($str);
print_r($a);

<?php
$A=Array  (  
	Array  (  'cat_id' => 9  ),
	Array  (  'cat_id' => 42  )  
);
$s=str_replace(array('a:1:{s:6:"cat_id";',';}'),array('',';'),serialize($A));
print_r(unserialize($s));
1 请登录后投票
   发表时间:2012-05-03  
二楼的方法通用,四楼的方法巧妙。
0 请登录后投票
   发表时间:2012-05-07  
一般就用二楼的办法
0 请登录后投票
   发表时间:2012-05-07  
shmiya 写道
一般就用二楼的办法

当然是用二楼的办法啦,我那个纯粹是玩的
0 请登录后投票
   发表时间:2012-05-07  
经常这么用
$data =array(
		0=> array(
				'cat_id' => 9
		) ,
		1=> array(
				'cat_id' => 42
		)
);
$merge = call_user_func_array('array_merge_recursive',$data);

print_r($merge['cat_id']);
0 请登录后投票
   发表时间:2012-08-16  
二楼的 我用的一直是这个 看了四楼 和楼上的 蛮好 学习之
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics