2012-07-13 61 views
1

我正在尝试在数组中找到picid,但它不工作。当我回应它时,什么都没有出现。数组搜索不能在PHP中工作

这里是我的代码

<?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 
    } 
    }?> 
+0

您的调试信息显示什么?你是否检查过'$ k'和'$ v'以确保它们正确填充? – andrewsi 2012-07-13 14:26:06

+0

是的,我已经检查过它的确定 – 2012-07-13 14:27:00

+0

代码本身没有关闭'}}',你忘记在这里或在你的脚本中发布它们吗? – Peon 2012-07-13 14:27:43

回答

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文件(每个目录中有一个文件),否则其中一个是错误的。

+0

下一个和上一个picid的值感谢帮助朋友的工作真棒 – 2012-07-13 14:42:28