如何检查所有密钥是否包含子密钥。
$array1 = array("key1"=>"sub1", "key2"=>"sub2"); // true
$array2 = array("key1", "key2"=>"sub2"); // false
$array3 = array("key1"=>"sub1", "key2"); // false
$array4 = array("key1", "key2"); // false
if(checkSubKey($array1))
echo "true";
else
echo "false";
非常感谢。
答案 0 :(得分:2)
您也可以使用foreach。
$flag=true;
foreach($arr as $key=>$value)
{
if(!($key && $value))
{
$flag= false;
break;
}
}
if($flag==false)
{
//your stuff
}
答案 1 :(得分:1)
尝试array_key_exists() 如果数组有键则返回true,否则返回false。
if(array_key_exists("key",$yourarray))
{
echo "exists";
}
{
else "not exist";
}
答案 2 :(得分:1)
$array1 = array("key1"=>"sub1", "key2"=>"sub2");
$hasKey = true;
foreach ($array1 as $key => $value)
{
if(!is_string($key))
{
$hasKey = false;
}
}
var_dump($hasKey); //true
$array2 = array("key1", "key2"=>"sub2");
$hasKey = true;
foreach ($array2 as $key => $value)
{
if(!is_string($key))
{
$hasKey = false;
}
}
var_dump($hasKey); //false
如果您不指定自己的数字键,此方法将起作用。所有阵列位置都有一个索引。如果您不指定一个,默认情况下它将是数字。这种方法利用了这一点,假设如果数组元素没有基于字符串的键,那么它的键就丢失了。虽然技术上不正确,但这足以满足你的榜样。
答案 3 :(得分:0)
为了确保数组中存在特定的键,您可以使用php的array_key_exists
方法:
if (array_key_exists("key1", $array1))
{
echo "Key exists!";
}
您也可以使用正则表达式,虽然稍有不同(使用preg_match
方法):
foreach($array1 as $key=> $value){
if(preg_match("/^key/", $key)){ //regular expression
echo "this key exists";
}
}
或者,如果要确定某个键本身是否包含数组(,即子数组),则可以执行以下操作:
foreach($array1 as $a){
if(is_array($a)){
//do some stuff on the inner array
}
}