php折叠父子,PHP处理父子层级选择问题 - str_repeat

58e8d81c4a0d115f2a9f9f245fa77d87.png

...=> $level, 'type' => 'file' ); //echo str_repeat(" ",$level).''.$file.''.'' ; }else { //输出文件夹名字 $arr[] = array( 'dir' => $dir, 'level' => $level, 'type' => 'dir...

/**

* @param $data 操作的数组

* @param string $fieldPri 唯一键名,如果是表则是表的主键

* @param string $fieldPid 父ID键名

* @param int $pid 一级PID的值

* @param string $sid 子ID用于获得指定指ID的所有父ID

* @param int $type 操作方式1=>返回多维数组,2=>返回一维数组,3=>得到指定子ID(参数$sid)的所有父

* @param string $html 名称前缀,用于在视图中显示层次感的列表

* @param int $level 不需要传参数(执行时调用)

* @return array

*/

private function channel($data, $fieldPri = 'cid', $fieldPid = 'pid', $pid = 0, $sid = null, $type = 2, $html = " ", $level = 1)

{

if (!$data) {

return array();

}

switch ($type) {

case 1:

$arr = array();

foreach ($data as $v) {

if ($v[$fieldPid] == $pid) {

$arr[$v[$fieldPri]] = $v;

$arr[$v[$fieldPri]]['html'] = str_repeat($html, $level - 1);

$arr[$v[$fieldPri]]["Data"] = self::channel($data, $fieldPri, $fieldPid, $v[$fieldPri], $sid, $type, $html, $level + 1);

}

}

return $arr;

case 2:

$arr = array();

$id = 0;

foreach ($data as $v) {

if ($v[$fieldPid] == $pid) {

$arr[$id] = $v;

$arr[$id]['level'] = $level;

$arr[$id]['html'] = str_repeat($html, $level - 1);

$sArr = self::channel($data, $fieldPri, $fieldPid, $v[$fieldPri], $sid, $type, $html, $level + 1);

$arr = array_merge($arr, $sArr);

$id = count($arr);

}

}

return $arr;

case 3:

static $arr = array();

foreach ($data as $v) {

if ($v[$fieldPri] == $sid) {

$arr[] = $v;

$sArr = self::channel($data, $fieldPri, $fieldPid, $pid, $v[$fieldPid], $type, $html, $level + 1);

$arr = array_merge($arr, $sArr);

}

}

return $arr;

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了PHP处理父子层级选择问题,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

...=> $level, 'type' => 'file' ); //echo str_repeat(" ",$level).''.$file.''.'' ; }else { //输出文件夹名字 $arr[] = array( 'dir' =>

再谈PHP中的str_repeat函数实现

前段时间讨论了在PHP中生成某多个某字符或字符串的字符串的问题,呵呵。这句话听起来太别扭了。举个例子就是,生成10个a的字符串就是aaaaaaaaaa。当然这里的a可以是ab或任何其他字符串。

...$r[1][0]); $k = chr(ord("i")+$key++); $outstr .= str_repeat(chr(9), $key-1)."/* 对数组 \${$r[1][0]} 赋值 */$LF"; $outstr .= str_rep

...看一个例子:

?

最后...

...kynWCWK+OBAA7'),array('images/tree_I.gif','R0lGODlhEwAUALMAAHt7e/8A'.str_repeat('/',57).'yH5BAEAAAEALAAAAAATABQAAAQfMMhJq7Xg6s1n7mD4haQ2lqiXrtLJku4

...=========================================================

$buffer = str_repeat("A", 9999);com_invoke($buffer, 1);?>

com_propput()

PHP中有一个函数:String str_repeat($str, num);挺好用的....以下通过js和php模拟实现。 1:PHP版本 复制代码 代码如下: /*PHP版实现*/ function repeat($str, $num){ return implode( $str, array_

...后面保留的位数

* @param string $mode

* @return mixed

*/function _str_repeat($str=null, $start = 4, $end = 4, $mode = '*'){

if(!empty($str))

...毁变量占用的内存!我们先看一个例子:

请问以上代码在IE,FF下均正常,可以依次输出ABCDE,而在谷歌浏览器下无法依次显示,而是一次输出ABCDE,原来以...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值