求如何查找一个数组在另一个数组出现的次数和位置?

bingidea 2014-10-04 07:15:38
$a = array("一","二","三","四","五","六","一","二","三","四","五","六","七","八","九","五","六","七","二","三","四","五);

$b = array("二","三","四");

查找$b在$a中出现位置的键名,上面的数组应该返回键名:1,7,18

如何做到,求方法。
...全文
给本帖投票
464 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天涯过客009 2014-10-06
  • 打赏
  • 举报
回复

1
7
18
天涯过客009 2014-10-06
  • 打赏
  • 举报
回复

$a=array("一","二","三","四","五","六","一","二","三","四","五","六","七","八","九","五","六","七","二","三","四","五");
$b=array("二","三","四");
foreach($a as $k=>$v){
    if($v=='二'){
        echo $k."<br/>";
    }
}
傲雪星枫 2014-10-05
  • 打赏
  • 举报
回复

$a = array("一","二","三","四","五","六","一","二","三","四","五","六","七","八","九","五","六","七","二","三","四","五");
$b = array("二","三","四");

$result = array();

for($i=0,$max=count($a); $i<$max;){
    for($j=0,$mj=count($b); $j<$mj; $i++,$j++){
        if(isset($a[$i]) && $b[$j]!=$a[$i]){
            $i++;
            break;
        }
    }
    if($j==$mj){
        array_push($result, $i-$mj);
    }
}

print_r($result);
Array ( [0] => 1 [1] => 7 [2] => 18 )
xuzuning 2014-10-04
  • 打赏
  • 举报
回复
$a = array("一","二","三","四","五","六","一","二","三","四","五","六","七","八","九","五","六","七","二","三","四","五");

$b = array("二","三","四");
$r = array();
foreach($a as $k=>$v) {
  if($v == $b[0]) {
    $n = 0;
    foreach($b as $i=>$t) if($a[$k+$i] == $t) $n++;
    if($n == count($b)) $r[] = $k;
  }
}
print_r($r);
Array
(
    [0] => 1
    [1] => 7
    [2] => 18
)

21,894

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部