从PHP

时间:2017-06-08 14:29:16

标签: php arrays key

我正在尝试找到其中一个子项存在的键。我有这个数组

$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”属于。我尝试了array_search,array_keys但是无法使它工作。我不会循环,我想知道是否有任何内置的数组函数为此...

编辑__

基本上我找到了我的代码的答案,我只是没有发布它,因为我想知道是否真的有任何方法为此... 我想要这个的原因是因为我解析了网址并希望查看网址中是否存在任何关键字“index.php”,“home”,“product”等,如果它们存在,我想获取这些关键字的部分属于。

假设网址为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”键?

3 个答案:

答案 0 :(得分:0)

$needle = '*post';

foreach ($stdCurl as $key => $value) {
    if (array_search($needle, $value))
        echo $key;
}

答案 1 :(得分:0)

您可以将key功能与array_filter结合使用。摘录:

$needle = 'αρθρο';
$pageKey = key(array_filter($stdCurl, function ($val) use ($needle) {
    return in_array($needle, $val);
}));

答案 2 :(得分:0)

我的理解是:找到" key"用于内部数组搜索。

<强>代码:

<?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

?>

快速查看:

  1. Get key of multidimensional array?