草庐IT

递归图

全部标签

PHP:从递归函数返回一个数组

我有一个这样的数组:SimpleXMLElementObject([BrowseNodes]=>SimpleXMLElementObject([BrowseNode]=>SimpleXMLElementObject([BrowseNodeId]=>969391031[Name]=>Bambineeragazze[Children]=>SimpleXMLElementObject([BrowseNode]=>Array([0]=>SimpleXMLElementObject([BrowseNodeId]=>969394031[Name]=>Calze)[1]=>SimpleXMLElem

php - 如何编写匹配嵌套括号的递归正则表达式?

我正在尝试编写一个匹配嵌套括号的正则表达式,例如:"(((text(text))))(text()()text)(casual(characters(#$%^^&&#^%#@!&**&#^*!@#^**_)))"应该匹配这样的字符串,因为所有嵌套的括号都已关闭,而是:"(((text)))(text)(casualChars*#(!&#*(!))"不应该,或者更好的是,至少应该匹配第一个“(((text)))(text)”部分。实际上,我的正则表达式是:$regex='/(((\()([^[]*?)(?R)?(\))){0,})/x';但它并没有像我期望的那样正常工作。如何解决?我哪里

PHP递归目录路径

我有这个函数来返回完整的目录树:functiongetDirectory($path='.',$level=0){$ignore=array('cgi-bin','.','..');//Directoriestoignorewhenlistingoutput.Manyhosts//willdenyPHPaccesstothecgi-bin.$dh=@opendir($path);//Openthedirectorytothehandle$dhwhile(false!==($file=readdir($dh))){//Loopthroughthedirectoryif(!in_array

php - 使用 PHP 递归计数文件

一个新手的简单问题,我的Google-Fu让我失望了。使用PHP,如何计算给定目录中的文件数,包括任何子目录(以及它们可能拥有的任何子目录等)?例如如果目录结构如下所示:/Dir_A//Dir_A/File1.blah/Dir_A/Dir_B//Dir_A/Dir_B/File2.blah/Dir_A/Dir_B/File3.blah/Dir_A/Dir_B/Dir_C//Dir_A/Dir_B/Dir_C/File4.blah/Dir_A/Dir_D//Dir_A/Dir_D/File5.blah对于“./Dir_A”,脚本应该返回“5”。我拼凑了以下内容,但并没有返回正确的答案,我

php - Symfony2 递归查询生成器

我有一个包含媒体、文档、pdf和文件夹列表的数据表。与GoogleDrive一样,我想在数据表的顶部显示面包屑。数据表反射(reflect)了通过jQuery单击任何文件夹时的变化。除了面包屑,所有东西都准备好了。我有当前打开的文件夹的ID,但我不知道如何获取从根目录到当前文件夹的层次结构。目前它给我的是父ID和名称,而不是整个层次结构。注意:-列之间没有关系,因为它在同一个表中。实体字段:-id,nameDisplay,parentId实体定义:-/***driveall*@ORM\Table(name="Driveall")*@ORM\Entity(repositoryClass=

PHP递归函数返回值

这个问题在这里已经有了答案:HowtousereturninsidearecursivefunctioninPHP(4个答案)关闭7个月前。我用PHP编写了一个递归函数来裁剪文本。裁剪后的文本将附加到末尾。未裁剪的文本将以其原始状态返回。如果文本适合最大宽度,它会起作用。但是,如果它不适合给定的宽度,函数将不会返回值,但它应该返回。似乎整个return语句都被忽略了。如果我将return替换为echo,它会显示正确的值。预期结果:-测试津-测试子-测试Z-测试-TES-TE...(这里没有返回任何内容,因此永远不会显示)functioncheck_length($str,$max,$s

PHP递归取消设置数组键如果匹配

我有以下数组,我需要递归循环并删除任何具有键“字段”的子数组。我已经尝试过数组过滤器,但我无法使其中的任何一个正常工作。$myarray=array('Item'=>array('fields'=>array('id','name'),'Part'=>array('fields'=>array('part_number','part_name'))),'Owner'=>array('fields'=>array('id','name','active'),'Company'=>array('fields'=>array('id','name',),'Locations'=>array(

php - 为什么 mkdir 因递归选项设置为真而失败?

我运行以下代码:mkdir('mnt/1',0777,true);mkdir('mnt/a',0777);目录“a”已创建,而目录“1”未创建,页面打印警告。Warning:mkdir():Fileexistsin/home/bitrix/www/php_test.phponline3对于正在运行的用户apache,我对目录mnt具有完全权限:drwxr-xr-x1bitrixbitrix4096Nov2810:10mntPHP版本-PHP5.3.3。Apache版本2.2.15。任何想法,为什么mkdir失败并递归选项设置为true?更新!好吧,我清除了文件夹,制作了以下php脚本并

php - 在 PHP 中递归更改数组值

我正在尝试递归地更改数组的值,而我在stackoverflow中看到的所有示例目前都不适合我想要的。基本上,我想将bool值转换为字符串。foreach($this->dataas$key=>$value){if(is_bool($value)){$this->data[$key]=var_export($value,true);}}这只适用于数组的第一层。此外,我尝试使用array_walk_recursive更改值,但也没有成功。提前致谢。 最佳答案 array_walk_recursive()应该很容易做到这一点array_w

php - 递归创建文件和文件夹

我得到了一个包含路径名和文件名的数组['css/demo/main.css','home.css','admin/main.css','account']如果这些文件和文件夹尚不存在,我想创建它们。如果它们已经存在,请覆盖它们。 最佳答案 对于每个路径,您必须指定它是文件还是目录。或者您可以让您的脚本假定,当基本名称(路径的最后一部分)包含一个点时,该路径指向一个文件。递归创建目录很简单:mkdir(dirname($path),0755,true);//$pathisafilemkdir($path,0755,true);//$p