在PHP中从多值数组中查找键
我试图找到其中一个子项存在于中的密钥。我有这个数组在PHP中从多值数组中查找键,php,arrays,key,Php,Arrays,Key,我试图找到其中一个子项存在于中的密钥。我有这个数组 $stdCurl = array( 'homepage' => array('', '/', 'index.php', 'home', 'arxiki'), 'blog' => array('αρθρα', 'blog'), 'post' => array('αρθρο', '*post'), 'products' => array('προιοντα', '
$stdCurl = array(
'homepage' => array('', '/', 'index.php', 'home', 'arxiki'),
'blog' => array('αρθρα', 'blog'),
'post' => array('αρθρο', '*post'),
'products' => array('προιοντα', 'products'),
'product' => array('προιον', 'product'),
'portfolio' => array('portfolio', 'έργα'),
'project' => array('project', 'έργο')
);
用户已选择“post”值(用*标记)。现在我想找到“post”属于哪个键。我尝试了数组搜索,但无法使其工作..我不习惯循环,我想知道是否有任何内置函数用于此数组
编辑__
基本上我找到了我的代码的答案,我只是没有发布它,因为我想知道是否真的有任何方法可以做到这一点。。
我之所以要这样做,是因为我解析了url,想看看url中是否存在任何关键字“index.php”、“home”、“product”等,如果它们存在,我想得到这些关键字所属的部分
假设url是http://domain.gr/gear-s3-samsung/product
。我解析url并在“/”上分解它,现在我想知道是否存在关键字,如果存在关键字,请从$stdCurl数组返回关键字所在的关键字
foreach($this->stdCurl as $key => $value):
foreach($value as $definedSection):
if(in_array($definedSection, $this->urlStructure)):
$this->pageKey = $key;
$this->pageSection = $definedSection;
else:
continue;
endif;
endforeach;
endforeach;
现在我得到$key并显示关键字存在的部分..但是我想知道如果我给你值“αρθρο”,我怎么才能得到“post”键?你可以结合使用
键
函数。片段:
$needle = 'αρθρο';
$pageKey = key(array_filter($stdCurl, function ($val) use ($needle) {
return in_array($needle, $val);
}));
我的理解是:为内部数组搜索找到“键” 代码:
<?php
$stdCurl = array(
'homepage' => array('', '/', 'index.php', 'home', 'arxiki'),
'blog' => array('αρθρα', 'blog'),
'post' => array('αρθρο', '*post'),
'products' => array('προιοντα', 'products'),
'product' => array('προιον', 'product'),
'portfolio' => array('portfolio', 'έργα'),
'project' => array('project', 'έργο')
);
function array_search_key ($array, $val) {
if (!is_array($array)){
return false;
}
foreach ($array as $key => $inner_array) {
if(in_array($val, $inner_array)){
return $key;
}
}
return false;
}
$key = array_search_key($stdCurl, 'προιον');
echo $key; //product
?>
快速查看:
<?php
$stdCurl = array(
'homepage' => array('', '/', 'index.php', 'home', 'arxiki'),
'blog' => array('αρθρα', 'blog'),
'post' => array('αρθρο', '*post'),
'products' => array('προιοντα', 'products'),
'product' => array('προιον', 'product'),
'portfolio' => array('portfolio', 'έργα'),
'project' => array('project', 'έργο')
);
function array_search_key ($array, $val) {
if (!is_array($array)){
return false;
}
foreach ($array as $key => $inner_array) {
if(in_array($val, $inner_array)){
return $key;
}
}
return false;
}
$key = array_search_key($stdCurl, 'προιον');
echo $key; //product
?>
请提供预期结果和您已经尝试过的任何代码,然后向我们展示预期结果,至少要找到“αρθρο”所在数组的键?没有循环..我不想循环..我想要数组搜索/数组差异..总之,我的错,我找到了答案..谢谢