...=> $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,原来以...