【问题标题】:PHP - Find array inside array. Do check -=if array contains other specific array=-PHP - 在数组中查找数组。请检查 -=如果数组包含其他特定数组=-
【发布时间】:2017-05-12 12:58:00
【问题描述】:

我们如何检查数组中特定数组的可用性?

例如我们有多维数组:

$arr = array(
  array(1,2,3),
  '12',
  true,
  4,
  array(
    'name1' => array(1,2),
    array(
      'some1' => array(99,98,96),
      4
    ),
    array(4,4)
  )
);

我们想要检查数组(99,98,96),它是否存在于我们的 $arr 中?

【问题讨论】:

  • 嗯,显然没有现成可用的功能。所以你必须实现你自己的。你试过吗?请发布您到目前为止的代码,并解释什么没有按预期工作。我们需要一个具体的问题才能提供帮助。抱歉,我们不是来为您编写代码的。
  • 这是非常抽象的逻辑,我不相信没有人可以分享一些小的sn-p代码。
  • 投票结束这个问题。我建议您聘请一名付费程序员为您完成工作。我们在这里帮助您编写您的代码,而不是为您编写代码。这在解释此页面内容的元问题中清楚地进行了解释。
  • @Vital 是的,我同意 arkascha 的说法.. 你至少需要想出一些你已经尝试过的东西,我们会通过并且可以肯定地给你建议或解决方案。
  • 我完全理解你。但是,当我们知道这不是必须解释所有小问题的非常具体的问题,而是只有抽象逻辑的问题,这对日常工作中的每个人都有用时:我认为我们不必关闭这个话题。我不要求人们编写一些庞大的应用程序,而只是展示小型的原生 sn-p 代码,以更好地了解哪些大脑使用更好的解决方案来解决我的小问题。

标签: php arrays search find contains


【解决方案1】:

从源代码array_search检查此代码

function recursive_array_search($needle,$haystack) {
    foreach($haystack as $key=>$value) {
        $current_key=$key;
        if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) {
            return $current_key;
        }
    }
    return false;
}

我希望这会奏效

【讨论】:

    【解决方案2】:

    试试这个:

    function findRecursive($arr, $find)
    {
        foreach ($arr as $match)
        {
            if (is_array($match))
            {
                if ($match == $find)
                {
                    return true;
                } else
                {
                    if (findRecursive($match, $find))
                    {
                        return true;
                    }
                }
            }
        }
    
        return false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-13
      • 2020-07-15
      • 1970-01-01
      • 2017-09-02
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多