PHP实现二维数组中的查找算法小结

 更新时间:2018年06月09日 12:17:41   作者:徐彬  
这篇文章主要介绍了PHP实现二维数组中的查找算法,涉及PHP数组遍历、判断、计算等相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP实现二维数组中的查找算法。分享给大家供大家参考,具体如下:

方法1:silu从左下角最后一行的第一个元素开始,遍历。如果小于target 则遍历该行的所有元素,找到结束。如果大于继续往上一行进行。等于直接结束。

<?php
function Find($target, $array)
{
  $m_y = count($array['0']);
  $m_x = count($array);
  for($i=$m_x-1;$i>=0;$i--){
    if($array[$i]['0'] < $target){
      for($j=1;$j<$m_y;$j++){
        if($array[$i][$j] == $target){
          return 1;
          break;
        }
      }
    }
    if($array[$i]['0'] == $target){
      return 1;
      break;
    }
  }
}

方法2

function Find($target, $array)
{
  $m_y = count($array['0']);
  $m_x = count($array);
  $i = 0;
    for($i =$m_x-1,$j=0;$i>=0&&$j<$m_y;){
      if($array[$i][$j]<$target){
        $j++;
        continue;
      }
      if($array[$i][$j]>$target){
        $i--;
        continue;
      }
      if($array[$i][$j] == $target){
        return 1;
      }
    }
}

方法3:

function Find($target, $array)
{
  $m_y = count($array['0']);
  $m_x = count($array);
  $i = $m_x-1;
  $j = 0;
  while(1){
    if($array[$i][$j]<$target){
      $j++;
    }
    if($array[$i][$j]>$target){
      $i--;
    }
    if($array[$i][$j] == $target){
      return 1;
    }
    if($i == 0||$j == $m_y-1){
      return 0;
    }
  }
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHPExcel导出Excel报错:PHPExcel_IOFactory::load()的解决方案

    PHPExcel导出Excel报错:PHPExcel_IOFactory::load()的解决方案

    这篇文章主要介绍了PHPExcel导出Excel报错:PHPExcel_IOFactory::load()的解决方案,文中有详细的问题分析和解决方法供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2023-11-11
  • php中DOMElement操作xml文档实例演示

    php中DOMElement操作xml文档实例演示

    DOMElement操作xml想必大家有所耳闻,接下来为大家以实例介绍下,感兴趣的朋友可以参考下哈,
    2013-03-03
  • php模拟用户自动在qq空间发表文章的方法

    php模拟用户自动在qq空间发表文章的方法

    这篇文章主要介绍了php模拟用户自动在qq空间发表文章的方法,可实现模拟用户提交表单发布文章的功能,代码中包含有较为详尽的注释便于理解,需要的朋友可以参考下
    2015-01-01
  • 非常不错的MySQL优化的8条经验

    非常不错的MySQL优化的8条经验

    php开发中,一定要考虑mysql的执行效率,下面的文章,可以很好的尽量避免的一些问题,学习php人要掌握这也是高手与菜鸟的区别,不是能做出来就叫高手的
    2008-03-03
  • PHP浮点数精度问题汇总

    PHP浮点数精度问题汇总

    这篇文章主要介绍了PHP浮点数精度问题汇总,本文着重探讨PHP浮点数精度损失问题,用三个段落不同的方式讲解了这个问题的形成原因以及解决方法,需要的朋友可以参考下
    2015-05-05
  • 如何隐藏你的.php文件

    如何隐藏你的.php文件

    如何隐藏你的.php文件...
    2007-01-01
  • PHP项目在Docker(WSL2)中运行缓慢的解决方法

    PHP项目在Docker(WSL2)中运行缓慢的解决方法

    最近在使用Docker容器运行PHP项目的时候,发现特别缓慢,例如一个干净的 ThinkPHP 5.1 框架,访问首页都需要1秒以上,如果再加上数据库查询、复杂的业务逻辑等代码的话,那速度可想而知,所以本文就给大家介绍了解决方法,需要的朋友可以参考下
    2023-09-09
  • PHP解压tar.gz格式文件的方法

    PHP解压tar.gz格式文件的方法

    这篇文章主要介绍了PHP解压tar.gz格式文件的方法,较为详细的介绍了PHP安装pear扩展及解压tar.gz格式文件的具体实现技巧,需要的朋友可以参考下
    2016-02-02
  • php控制反转与依赖注入举例讲解

    php控制反转与依赖注入举例讲解

    IOC-Inversion of Control,即控制反转。它不是什么技术,而是一种设计思想。这篇文章主要介绍了php控制反转与依赖注入的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-11-11
  • 从康盛产品(discuz)提取出来的模板类

    从康盛产品(discuz)提取出来的模板类

    从康盛产品(discuz)提取出来的模板类,学习php的朋友可以参考下。
    2011-06-06

最新评论