Php 使用字符串存储语句(或语句的一部分),然后将其添加到代码中
我使用多维数组来存储产品属性(确切地说,Virtuemart是这样做的)。 当我尝试回显子数组值时,如果子数组不存在: 致命错误:无法使用字符串偏移量 作为一个数组 为了解决这个问题,我尝试创建一个函数来检查每个数组级别是否为实际数组,以及它是否为空(当同时尝试整个事情时,例如:Php 使用字符串存储语句(或语句的一部分),然后将其添加到代码中,php,Php,我使用多维数组来存储产品属性(确切地说,Virtuemart是这样做的)。 当我尝试回显子数组值时,如果子数组不存在: 致命错误:无法使用字符串偏移量 作为一个数组 为了解决这个问题,我尝试创建一个函数来检查每个数组级别是否为实际数组,以及它是否为空(当同时尝试整个事情时,例如:is_array($array['level1']['level2']['level3']),如果level1或level2不是实际数组,我会得到相同的错误) 这是函数($array包含要检查的数组,$array\u l
is_array($array['level1']['level2']['level3'])
,如果level1
或level2
不是实际数组,我会得到相同的错误)
这是函数($array
包含要检查的数组,$array\u levels
是包含子数组名称的数组,按其出现的顺序排列):
如何获取$dimensions中包含的字符串并将其插入到代码中,作为语句的一部分?除了执行
求值之外,我认为您无法执行此操作
if(eval("!is_array($array".$dimension.")"))
return false
然而,这是另一种方法
function check_md_array($array,$array_levels){
if(!is_array($array))
return false;
foreach($array_levels as $level){
if(!isset($array[$level]) || !is_array($array[$level]))
return false;
$array = $array[$level];
}
return true;
}
除了做评估之外,我认为你做不到
if(eval("!is_array($array".$dimension.")"))
return false
然而,这是另一种方法
function check_md_array($array,$array_levels){
if(!is_array($array))
return false;
foreach($array_levels as $level){
if(!isset($array[$level]) || !is_array($array[$level]))
return false;
$array = $array[$level];
}
return true;
}
最好使用引用而不是复制数组。@Dean:引用需要使用单独的变量,而不是$array
本身。@Gumbo:我明白了。如果我使用对同一数组的引用,这意味着如果我对它进行迭代,我将修改数组指针。或者我误解了你,请再解释一下。@Damp:最真诚的道歉,我犯了一个错误。它工作得非常好+1,回答被接受。@dean Thx!另外,关于指针,这是完全正确的。最好使用引用,而不是复制数组。@Dean:引用需要使用单独的变量,而不是$array
本身。@Gumbo:我明白了。如果我使用对同一数组的引用,这意味着如果我对它进行迭代,我将修改数组指针。或者我误解了你,请再解释一下。@Damp:最真诚的道歉,我犯了一个错误。它工作得非常好+1,回答被接受。@dean Thx!另外,关于指针,这是完全正确的。