数组搜索在php中不起作用

时间:2012-07-13 14:24:59

标签: php arrays

我正在尝试在阵列中找到picid,但它无法正常工作。当我回应它时,什么都没有出现。

这是我的代码

<?php $psql=mysql_query("select * from gallery where userId='$miid'");
$photo1 = array();

while($photo=mysql_fetch_assoc($psql)) { 
  $photo1[]=$photo;
  print_r($photo);
}

foreach($photo1 as $k => $v){
  if($v['picId']==$mipic){
    $pic="uploads/".$v['photo'];
    echo ">>>". $key=array_search($v['picId'],$photo1);
?>

 <a href="eg?next=<?php echo $photo[$k+1];?>">NEXT</a>
 <img src="<?php echo $pic; ?>" width="300px" height="300px">
 <a href="eg?previous=<?php echo $photo[$k-1];?>">PREVIOUS</a>
 <?php
  }
  }?>

1 个答案:

答案 0 :(得分:1)

array_search不是递归的。 $v中存在$photo1,而$v['picId']中仅存在$v

这使得$key=array_search($v['picId'],$photo1)返回false,当你回复它时,它将打印为空。

我不确定你为什么要使用array_search。要检索下一个和上一个picId,请尝试以下方法:

<a href="modules/gallery/miloader.php?next=<?php echo $photo1[$k+1]['picId'];?>">NEXT</a>
<img src="<?php echo $pic; ?>" width="300px" height="300px">
<a href="miloader.php?previous=<?php echo $photo1[$k-1]['picId'];?>">PREVIOUS</a>

请注意,其中一个href是modules/gallery/miloader.php而另一个只是miloader.php。因此,除非你实际上有两个不同的miloader.php文件(每个目录中有一个),否则其中一个是错误的。