php数组填充

qq_34921650 2017-05-11 11:12:18


$arr=array ('0' => array ( 'num' => '8','search_name' => '好' ),'1' => Array ( 'num' => '8', 'search_name' => '奇迹' ), '2' => Array ( 'num' => '6' ,'search_name' => '奇' ) ,'3' => Array ( 'num' => '6', 'search_name' => '奇迹哥' ) ,'4' => Array ( 'num' => '1', 'search_name' => '不好' ), '5' => Array ( 'num' => '6' ,'search_name' => '到底' ), '6' => Array ( 'num' => '5', 'search_name' => '孪' ),'7' => Array ( 'num' => '5' ,'search_name' => '结果' ) ,'8' => Array ( 'num' => '5', 'search_name' => '你好' ) );

数组如上:num理解为点击数 search_name点击的标签名称 把点击量一样的标签合并成字符串
结果为


$arr=array (

'0' => array ( 'num' => '1','search_name' => '不好' ),
'1' => Array ( 'num' => '2', 'search_name' => '无' ),
'2' => Array ( 'num' => '3' ,'search_name' => '无' ) ,
'3' => Array ( 'num' => '4', 'search_name' => '无' ) ,
'4' => Array ( 'num' => '5', 'search_name' => '孪,结果,你好' ),
'5' => Array ( 'num' => '6' ,'search_name' => '到底,奇迹哥,奇' ),
'6' => Array ( 'num' => '7', 'search_name' => '无' ),
'7' => Array ( 'num' => '8' ,'search_name' => '好,奇迹' )
);
...全文
249 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-05-11
  • 打赏
  • 举报
回复
$arr=array ('0' => array ( 'num' => '8','search_name' => '好' ),'1' => Array ( 'num' => '8', 'search_name' => '奇迹' ), '2' => Array ( 'num' => '6' ,'search_name' => '奇' ) ,'3' => Array ( 'num' => '6', 'search_name' => '奇迹哥' ) ,'4' => Array ( 'num' => '1', 'search_name' => '不好' ), '5' => Array ( 'num' => '6' ,'search_name' => '到底' ), '6' => Array ( 'num' => '5', 'search_name' => '孪' ),'7' => Array ( 'num' => '5' ,'search_name' => '结果' ) ,'8' => Array ( 'num' => '5', 'search_name' => '你好' ) );

$res = array();
$max = 0;
foreach($arr as $v) {
  if(! isset($res[$v['num']])) $res[$v['num']] = $v;
  else $res[$v['num']]['search_name'] .= ",$v[search_name]";
  $max = max($max, $v['num']);
}
$res += array_fill(1, $max, array('num' => 0, 'search_name' => '无'));
ksort($res);
print_r($res);

Array
(
    [1] => Array
        (
            [num] => 1
            [search_name] => 不好
        )

    [2] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [3] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [4] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [5] => Array
        (
            [num] => 5
            [search_name] => 孪,结果,你好
        )

    [6] => Array
        (
            [num] => 6
            [search_name] => 奇,奇迹哥,到底
        )

    [7] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [8] => Array
        (
            [num] => 8
            [search_name] => 好,奇迹
        )

)
xuzuning 2017-05-11
  • 打赏
  • 举报
回复
foreach($res as $k=>$v) $res[$k]['num'] = $k;
qq_34921650 2017-05-11
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
可以呀,但那样并不合情理
恩 我就是想问一下怎么填充进去 实际操作中有版主你这个填充就可以的
xuzuning 2017-05-11
  • 打赏
  • 举报
回复
可以呀,但那样并不合情理
qq_34921650 2017-05-11
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
$arr=array ('0' => array ( 'num' => '8','search_name' => '好' ),'1' => Array ( 'num' => '8', 'search_name' => '奇迹' ), '2' => Array ( 'num' => '6' ,'search_name' => '奇' ) ,'3' => Array ( 'num' => '6', 'search_name' => '奇迹哥' ) ,'4' => Array ( 'num' => '1', 'search_name' => '不好' ), '5' => Array ( 'num' => '6' ,'search_name' => '到底' ), '6' => Array ( 'num' => '5', 'search_name' => '孪' ),'7' => Array ( 'num' => '5' ,'search_name' => '结果' ) ,'8' => Array ( 'num' => '5', 'search_name' => '你好' ) );

$res = array();
$max = 0;
foreach($arr as $v) {
  if(! isset($res[$v['num']])) $res[$v['num']] = $v;
  else $res[$v['num']]['search_name'] .= ",$v[search_name]";
  $max = max($max, $v['num']);
}
$res += array_fill(1, $max, array('num' => 0, 'search_name' => '无'));
ksort($res);
print_r($res);

Array
(
    [1] => Array
        (
            [num] => 1
            [search_name] => 不好
        )

    [2] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [3] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [4] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [5] => Array
        (
            [num] => 5
            [search_name] => 孪,结果,你好
        )

    [6] => Array
        (
            [num] => 6
            [search_name] => 奇,奇迹哥,到底
        )

    [7] => Array
        (
            [num] => 0
            [search_name] => 无
        )

    [8] => Array
        (
            [num] => 8
            [search_name] => 好,奇迹
        )

)
谢谢版主 不过就是填充数组时候那个num的值能不能变成题目中要求的那个值呢 ?

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧