【发布时间】:2014-03-29 22:43:22
【问题描述】:
如何判断 foreach 循环中的数组元素是否有键?
一些代码:
function test($p_arr){
foreach ($p_arr as $key => $value){
// detect here if key 'came with the array' or not
}
}
$arr1['a'] = 10;
$arr2[] = 10;
$arr3[2] = 10;
test($arr1); // yes
test($arr2); // no
test($arr3); // yes
编辑#1
我知道$arr2 也可以作为自动索引键。我需要知道它是否是自动化的。
编辑#2
我的使用很简单。
在函数中,我创建一个新数组并使用$key 作为新的$key,如果它是由函数调用提供的。或 $value 作为新的 $key,如果它在函数调用中被省略。
我知道我可以强制对每个元素使用键,但在代码的某些部分,数据结构本身是非常动态的* - 我正在尝试尽可能地保持灵活性。
*创建其他代码的代码,创建...等等。
【问题讨论】:
-
我不确定您所说的 '与数组一起' 是什么意思。
$key将永远是您的数组的键。 -
每个数组元素总是有一个键,做一个 print_r() 或 var_dump() 看看
-
你说的都对,请检查编辑
-
“自动索引键”是什么意思?您是指数字键与关联(字符串)键吗?
-
您无法判断它是“自动”还是明确设置;而且我无法解决您需要...也许如果您解释了您要实现的业务案例