Php 如何在多维数组中找到包含特定字符串的所有键?
这是我的阵列:Php 如何在多维数组中找到包含特定字符串的所有键?,php,arrays,Php,Arrays,这是我的阵列: array(1) { ["farm"]=> array(2) { ["horse"]=> array(2) { ["horseman"]=> array(4) { ["fred1"]=> string(5)"fred1"
array(1) {
["farm"]=>
array(2) {
["horse"]=>
array(2) {
["horseman"]=>
array(4) {
["fred1"]=>
string(5)"fred1"
["fred2"]=>
string(9) "fred2"
["fred3"]=>
string(19) "fred3"
["fred4"]=>
string(24) "fred4"
}
["cat"]=>
array(1) {
["john"]=>
string(4) "john"
}
}
["folder2"]=>
array(1) {
["cat"]=>
array(2) {
["sam"]=>
string(3) "sam"
["cat"]=>
array(1) {
["john"]=>
string(4) "john"
}
}
}
}
}
在我的数组中,我正在搜索密钥horse
:
$srch = "horse";
function findKey($array, $keySearch){
foreach ($array as $key => $item) {
if (strpos($key, $keySearch) !== false) {
echo "<li>".$key."</li>"";
}
else {
if (is_array($item) && findKey($item, $keySearch)) {
echo "<li>".$key."</li>"";
}
}
}
}
echo findKey($array, $srch);
$srch=“horse”;
函数findKey($array,$keySearch){
foreach($key=>$item的数组){
if(strpos($key,$keySearch)!==false){
回显“”$key. ”;
}
否则{
if(is_数组($item)和&findKey($item,$keySearch)){
回显“”$key. ”;
}
}
}
}
echo findKey($array,$srch);
我的结果是:
function findKey($array, $keySearch) {
foreach ($array as $key => $item) {
if (strpos($key, $keySearch) !== false)
echo "<li>".$key."</li>";
if (is_array($item))
findKey($item, $keySearch);
}
}
函数findKey($array,$keySearch){
foreach($key=>$item的数组){
if(strpos($key,$keySearch)!==false)
回显“”$key. ”;
if(is_数组($item))
findKey($item$keySearch);
}
}
比较键和在子数组中搜索是两个独立的步骤
function findKey($array, $keySearch) {
foreach ($array as $key => $item) {
if (strpos($key, $keySearch) !== false)
echo "<li>".$key."</li>";
if (is_array($item))
findKey($item, $keySearch);
}
}
函数findKey($array,$keySearch){
foreach($key=>$item的数组){
if(strpos($key,$keySearch)!==false)
回显“”$key. ”;
if(is_数组($item))
findKey($item$keySearch);
}
}
谢谢!我测试了你的代码,但是我得到了一个blanc页面,其中缺少了一些}
,但是除此之外,你的代码运行得非常好!很乐意帮忙。祝你好运哦,我发现如果一个数组中有多个数组,它就不会显示。我给你举个例子。一秒钟是的。但是加上“谢谢你!”!我测试了你的代码,但是我得到了一个blanc页面,其中缺少了一些}
,但是除此之外,你的代码运行得非常好!很乐意帮忙。祝你好运哦,我发现如果一个数组中有多个数组,它就不会显示。我给你举个例子。一秒钟是的。但是加上`