草庐IT

l_velocity_Array

全部标签

php - SPL 与数组 : When should we use SPL and when should we use Array in PHP?

在java和C++中,当我们不知道大小时-不像在PHP中那样使用数组,而是使用linkedList等。在PHP中存在SPL,但大多数时候程序员使用数组,为什么(因为人们不了解SPL)?什么时候我们应该在PHP和什么时候使用SPL以及在这种情况下PHP和Java/C++之间的区别是什么? 最佳答案 每个PHP请求都必须初始化所有变量,并在请求后释放它们。因此,特殊数据结构(如最大堆、链表或队列)比数组更高效的情况并不常见。对于初学者来说,数组也更容易理解和使用。PHP与C++的不同之处在于数组长度是动态的。您可以随时添加元素。$arr

php - 在 array_walk_recursive 函数之后获取父数组名称

我使用以下函数来验证搜索词是否在我的文件夹的文件名中。$files2=list_files("documents/minelli");ClassCommentaire_filter{staticfunctiontest_print($item,$key,$value){if(preg_match("#".$value."#",$item)){$array=Array($key=>$item);print_r($array);?>">我获得了一个文件列表。我想添加一个链接以允许用户下载该文件。当我使用array_walk_recursive函数时,我只能获取文件名和key。如何获取父数组

php - array_merge 与 array_value 用于重置数组索引

我有1个要重新索引的数组。我发现array_values和array_merge函数可以完成这项工作(而且我不需要2个数组来让array_merge函数工作)。对于非常大的数组,哪个更快?我会对此进行基准测试,但我不知道如何做,也没有大型阵列。重新索引之前:Array([0]=>AB[4]=>EA[6]=>FA[9]=>DA[10]=>AF)重新索引后:Array([0]=>AB[1]=>EA[2]=>FA[3]=>DA[4]=>AF) 最佳答案 我得到了基准,array_value快了3倍(抱歉回答我自己的问题,评论部分不保留格式

php - in_array 检查非假值

$array=array('vegs'=>'tomatos','cheese'=>false,'nuts'=>765,''=>null,'fruits'=>'apples');var_dump(in_array(false,$array,true));//returnstruebecausethereisafalsevalue如何仅使用in_array或除foreach以外的任何方式严格检查数组中是否至少有一个非假(字符串、真、整数)值?var_dump(in_array(!false,$array,true));//thischecksonlyforbooleantruevalues

php - 是否存在 array_search 比连续 array_flip 和直接查找更快的情况?

假设您要搜索一个包含N个元素的数组,并对数组值执行Y次搜索以找到相应的键;您可以执行Yarray_search或执行一个array_flip和Y直接查找。为什么第一种方法比第二种方法慢很多?是否存在第一种方法比第二种方法更快的情况?您可以假设键和值是唯一的 最佳答案 数组键是散列的,所以查找它们只需要调用散列函数并索引到散列表中。所以array_flip()是O(N)并且查找数组键是O(1),所以Y搜索是O(Y)+O(N)。数组值未经过哈希处理,因此搜索它们需要线性搜索。这是O(N),所以Y搜索是O(N*Y)。假设要搜索的值在数组中

php - 'function' 和 'use' 以及 'array_filter' 在 PHP 中如何工作?

我熟悉创建一个放在.php文件顶部的PHP函数,例如:functionmy_little_function($parm1,$parm2){if($parms然后这样调用它:$result=my_little_function("1","2");echo"Theansweris$result."."\n";我有一些代码,不是我写的,它在像上面的my_little_function这样的函数的传统用法中同时使用了“function”和“use”。我对此感到困惑,并向您这些更有经验的PHP开发人员提出一些问题。这是我所指的工作PHP代码的一部分:$neededObject=array_fil

PHP 数组 : how to print only array values but not keys

此代码循环遍历mysql表并打印出空/空字段。然而,它会像这样打印数组值和键Array([0]=>Field"dob"onentry"1"isempty/null[1]=>Field"user_name"onentry"7"isempty/null)如何打印类似这样的内容条目“1”上的字段“dob”为空/null$sql="SELECT*FROMuserinfo";$res=mysql_query($sql);while($row=mysql_fetch_array($res)){foreach($rowas$key=>$field){if(empty($field)){$emptyF

php - Array_splice 充当 array_slice?

我无法准确理解array_splice和array_slice的作用。据我所知,array_splice应该在取出某些元素后返回一个数组,而array_slice应该检索数组的一部分。以下代码来自php.net/array_splice手册显示此代码应该有效。$input=array("red","green","blue","yellow");var_dump(array_splice($input,2));//$inputisnowarray("red","green")$input=array("red","green","blue","yellow");var_dump(arr

带有 array_walk 的 PHP 匿名函数

我正在尝试将array_walk与匿名函数一起使用,但我总是遇到错误//Parseerror:syntaxerror,unexpectedT_FUNCTIONin...onlineXif(!empty($myArray)){array_walk($myArray,function(&$value,$key){//LineX$value='"'.$value.'"';//Addquotes});}周围的文件语法是正确的。有什么想法吗? 最佳答案 是的,真正的匿名函数(闭包)仅在PHP5.3中可用,但是您仍然可以在早期版本的PHP中使用

php - in_array 没有任何意义

$arr=array('test'=>array('soap'=>true,),);$input='hey';if(in_array($input,$arr['test'])){echo$input.'isapparentlyinthearray?';}结果:嘿显然在阵列中?这对我来说没有任何意义,请解释原因。我该如何解决这个问题? 最佳答案 那是因为true=='hey'由于typejuggling.您正在寻找的是:if(in_array($input,$arr['test'],true)){它强制基于===而不是==进行相等性测