2012-11-12 20 views
1

嘗試使用array_keys兩個級別陣列,但不知道如何:嘗試使用array_keys兩個級別陣列

這不起作用:

<?php 
$myarray['a'][]='b'; 

$an_id='b'; 

$eval="a"; 
$check=array_keys($myarray,$an_id); 

if(in_array($eval,$check)){ 
echo 'found'; 
} 
?> 

兩個級別陣列。

但這:

<?php 
$myarray['a']='b'; 

$an_id='b'; 

$eval="a"; 
$check=array_keys($myarray,$an_id); 

if(in_array($eval,$check)){ 
echo 'found'; 
} 
?> 

單級陣列。

+0

不能這樣簡化爲'$ myArray的[$ EVAL] === $ an_id'? –

+0

No as $ myarray [$ eval] []恰恰是一個具有多個值的數組,因此使用array_keys – lbennet

回答

1

你的第一個例子不工作,因爲你搜索b的字符串,而$myarray['a']包含一個b字符串數組,所以只需更換你的下面一行:

$an_id='b'; 

這一個:

$an_id= array('b'); 

所以你需要在$myarray之內搜索正確的值,改變你的第一個例子就行了。

見工作example