php复杂数组如何重组

lghyt 发布于 2017/03/05 16:56
阅读 402
收藏 0
PHP

先说前提:
        有一个变量$arr,当打印print_r($arr) 时,会显示下面的值

   array('fid'=>85,'fup'=>23,'type'=>sub)
   array('fid'=>66,'fup'=>3,'type'=>sub)
   array('fid'=>188,'fup'=>2,'type'=>sub)
   array('fid'=>57,'fup'=>41,'type'=>gro)
   array('fid'=>35,'fup'=>98,'type'=>wc)
   array('fid'=>54,'fup'=>22,'type'=>bfo)

从中可以看出,这不是多维数组,因为如是二维数组,每个array后面应该有一个逗号隔开,但是没有!

需求:

现想把这种不是二维数组的小数组堆(先这么描述),经过数组,搞成二维数组,并且抽出条件为'type'=>sub即类似这种形式:

$arr=array(
   85=>array('fid'=>85,'fup'=>23,'type'=>sub),
   66=>array('fid'=>66,'fup'=>3,'type'=>sub),
   188=>array('fid'=>188,'fup'=>2,'type'=>sub),
);

注意组合后的键值是以fid为值。
不知这种变化如何变化!

加载中
0
我就是团队
我就是团队

<?php
$arr [] = array('fid'=>85,'fup'=>23,'type'=>'sub');
$arr [] = array('fid'=>66,'fup'=>3,'type'=>'sub');
$arr [] = array('fid'=>188,'fup'=>2,'type'=>'sub');
$arr [] = array('fid'=>57,'fup'=>41,'type'=>'gro');
$arr [] = array('fid'=>35,'fup'=>98,'type'=>'wc');
$arr [] = array('fid'=>54,'fup'=>22,'type'=>'bfo');

$new = [];
foreach ($arr as $tmp) {
    $new [$tmp['fid']] = $tmp;
}

echo '<pre>';
print_r($new);
echo '</pre>';
 

0
昨夜小楼听风雨

应该是字符串?先分割,再用楼上的方法

返回顶部
顶部